別のスレッドで作業/タスクのキューを作成したいのですが、一度に1つの作業しか処理できません。同時にではありません。Androidスレッドキュー
これには何か組み込みのAndroidがありますか?
おかげで、
EDIT: 仕事=データベースから情報を取得します。完了したら、取得した情報でUIを更新します。
別のスレッドで作業/タスクのキューを作成したいのですが、一度に1つの作業しか処理できません。同時にではありません。Androidスレッドキュー
これには何か組み込みのAndroidがありますか?
おかげで、
EDIT: 仕事=データベースから情報を取得します。完了したら、取得した情報でUIを更新します。
java.util.concurrent.Executorsをチェックしましたか?
final static ExecutorService tpe = Executors.newSingleThreadExecutor();
...
tpe.submit(new Runnable() {
@Override
public void run() {
// your work
}
}):
これはAndroid専用ではなく、jdk5の一部です。ドキュメントから
:
は アンバウンド形式のキューなしで動作する、単一のワーカースレッドを使用するExecutorのを作成します。ただし、シャットダウン前に実行中に障害が発生したためにこの単一スレッドが終了すると、 が終了すると、新しいスレッドが実行され、後続のタスクを実行する必要がある場合は になります)。 タスクは、任意の時点で有効になります です。そうでなければ、等価の newFixedThreadPool(1)とは異なり、返されたエグゼキュータは、 が追加のスレッドを使用するように再構成できないことが保証されています。
キューに格納された作業を行うことができるアクティビティライフサイクルとは独立して作業できるものをご希望の場合は、IntentServiceをご覧ください。それはスピンアップし、ディスクリートな作業ブロックを非同期で実行し、すべてのタスクが完了したときに終了します。
アクティビティがなくても使用できるものが必要ない場合は、JavaにはExecutorServiceといくつかの異なる実装があります。
Androidの場合ローダーフレームワークについても検討できます。
典型的には、読取DB「は、別のスレッド」で行われるが、UIを更新するメインスレッドで行われなければなりません。したがって、これらのタスクは同じスレッドで順番に実行されません。 – Tom