1 つのアクティビティから開始する AsyncTask があります。一部のデータを sqlite データベースに保存します。これには数秒かかる場合があります。onPreExecute() 内に標準の進行状況バーを設定し、onPostExecute() 内でそれを閉じて、doInBackground(Void... arg0) でいくつかの作業を行いました。
タスクが完了したら、アクティビティに戻ってfinish()するために必要なもの。問題は、AsyncTask が完了するのを待つ方法がわからないことです。ステータスを確認できますが、それは役に立ちません。
public class UpdateAsyncTask extends AsyncTask<Void, Void, Boolean> {
@Override
protected void onPreExecute() {
progress = new ProgressDialog(context);
progress.setMessage("Loading ...");
progress.show();
}
@Override
protected Boolean doInBackground(Void... arg0) {
// Do work
return true;
}
protected void onPostExecute() {
progress.dismiss();
}
}
メイン アクティビティが完了したら、finish() を呼び出すにはどうすればよいですか。御時間ありがとうございます
UPDATE によってタスクを実行します
UpdateAsyncTask task = new UpdateAsyncTask(context);
task.setCallbackActivity(this);
task.execute();
UPDATE 2 aynctask は、再利用したいので別のタスクです