AsyncTask を Android から Java に移植するにはどうすればよいでしょうか? 質問する

AsyncTask を Android から Java に移植するにはどうすればよいでしょうか? 質問する

非同期タスク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 を使用していない場合は、別のオプションとして次のものがありますThreadPoolExecutorhttp://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
  }
});

おすすめ記事