もう一方の非同期タスクを実行したいです。ここで、非同期タスク2が実行されるかどうかは、非同期タスクの値によって決まります。 (X == 2)はA1の前に実行される場合には条件が終了したので、ここで は私が私の理解によると1つの非同期タスクを1つずつ実行するにはどうすればよいですか?
int x=0;
x=new A1().executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
(Here x is just for the sake of explanation and making it simple, take it as a pseudo code rather than actual code)
if (x==2)
new A2().executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
を達成したいものです、ここで、xの値が0以外になることはありません。 A1タスクが終了したときにif(x == 2)が実行されるようにします。
私は、A1のonPostExecute内でA2を実行するとそのトリックが実行されますが、私の状況ではA2を単独で実行する必要があることが分かりました。
をだから、唯一のあなたはそれをしたい場合にはA2で後に実行を埋めますか? – chrylis
@chrylisこれはほんの一例であった。 #相互にリンクされた3-4の非同期タスクがあります。 #入力値が変更されることがあります。これらの非同期タスクの入力は、互いに依存してもよいし、依存しなくてもよい。実用的ではありません。私は現在それを使用しています。そしてそれを使用し続けるために、私は非常に小さな変更を加えて多くのものを貼り付けなければならないでしょう。 Post Executeの中に入れないで、やり方を知っていますか? –
本当に4 'AsyncTasks'を実行する必要がありますか、それとも4つのことを順番に行う必要がありますか? 'onPostExecute'で物事を連鎖させるよりも、おそらくもっとクリーンなアプローチがあるでしょう。 –