非同期タスクAndroidのUIスレッドと他のスレッドを同期させるのに非常に便利です。ソースコードJava Classic (JDK) への移植を試みましたが、Java に存在しないクラス (Message、Handler など) があるため成功しませんでした。AsyncTask
(メイン スレッドと他のスレッド間で同期できる) などの便利な機能を備えたクラスを作成したいと思います。
doInBackground(Params... params)
onProgressUpdate(Progress... values)
onPostExecute(Result result)
publishProgress(Progress... values)
onPreExecute()
onCancelled()
それを試す方法はありますか?
ベストアンサー1
SwingWorker
最も直接的な類似点であることは同意しますAsyncTask
Swing を使用していない場合は、別のオプションとして次のものがありますThreadPoolExecutor
。http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html
ThreadPoolExecutor
複数のバックグラウンド スレッドを生成するために を使用する方法を説明する記事を次に示します。http://www.javacodegeeks.com/2013/01/java-thread-pool-example-using-executors-and-threadpoolexecutor.html
実行して完了する単一のバックグラウンドスレッドを生成するそれなし進行状況の更新 (Android でも一般的な使用法AsyncTask
) は次のように簡単です。
Executors.newSingleThreadExecutor().execute(new Runnable() {
@Override
public void run() {
// do stuff in background
}
});