私のフラグメントに4つのAsyncTaskクラスがあります。私は4つすべてを実行したいが、一度に1つは実行する。私はtask.execute().get()とtask.execute()。getStatus()のようなものを試しました。これらはうまくいくようには思えません。タスクが実行中に別のタスクを実行できないというエラーが表示されます。これらは私が実行しようとしています4 AsyncTasksです:各AsyncTaskが次のAsyncTaskを実行する前に終了するのを待ちます。
ProgressDialog dialog = new ProgressDialog(getActivity());
dialog.setTitle("Finalizing Your Run");
dialog.setMessage("We hope you had fun running! Please wait while we send your running data to our system. This may take a few seconds depending on your internet connection");
dialog.setCancelable(false);
dialog.show();
//All the async tasks to be executed
AddRouteCheckpoints checkpointTask = new AddRouteCheckpoints(getActivity(), dialog);
GetRouteIdTask routeIdTask = new GetRouteIdTask(getActivity(), dialog);
AddRouteTask addRouteTask = new AddRouteTask(getActivity(), dialog);
AddRunTask personalRunTask = new AddRunTask(getActivity(), dialog);
各AsyncTaskは、次のAsyncTaskに移動する前に、完全にそのタスクを完了確保する方法はありますか?
それぞれにコールバックインターフェイスを提供し、その中から次のコールバックインターフェイスを呼び出すことができます – Shaishav
あなたの '実行 'はどこですか?そして、それに加えて、結果が利用可能になるまで 'get'を待ちます。あなたの実装にはおそらく欠陥があります。 –
"次のAsyncTaskに移行する前に、各AsyncTaskがそのタスクを完全に完了することを保証する方法はありますか?" 1つのタスク内で4つのタスクに分散しているすべてを行う方が良い場合、私に鳴りますか? – Fildor