アンドロイド1.5:Asynctask doInBackground()get()メソッドが呼び出されたときに呼び出されません

StackOverflow https://stackoverflow.com/questions/2502874

  •  21-09-2019
  •  | 
  •  

質問

私は私のasynctasksが実行されている方法で問題に実行しています。ここでは、問題のコードがあります:

firstTask = new background().new FirstTask(context);
if (firstTask.execute().get().toString().equals("1")) {
    secondTask = new background().new SecondTask(context);
}

私はここでやっていることは、新しいasynctaskオブジェクトを作成firstTaskに代入し、それを実行しています。私は、最初のものが行われ、作ってください、それは(この場合は1)成功値を返したときに別のasynctaskをオフに解雇したいです。 これは、Android 2.0とアップに完璧に動作します。しかし、私は、Android 1.5でテストしていとの問題が飛び出る開始します。上記のコードは、最初asynctaskを実行しますが、doInBackground()が呼び出される()onPreExecuteにもかかわらず、呼び出されることはありません。私は、get()メソッドずに最初のタスクを実行するために午前場合は、doInBackground()が呼び出され、すべてが期待どおりに動作します。今除いて私は最初のタスクが正常ので、私は2番目のタスクを実行するために伝えることができることを完了したかどうかを判断する方法はありません。 これは、Android 1.5にasynctaskのバグであると仮定することは安全ですか?特に、APIから( https://developer.android .COM /参照/アンドロイド/ OS / AsyncTask.html#GET%28%29 の)getメソッドは、API 3から実施されていることを述べています。 この問題を解決する方法はありますか?あるいは、最初のタスクが完了したことを判断するための別の方法はありますか?

役に立ちましたか?

解決

あなたは(get()経由)をブロックしようとしている場合は、なぜあなたは最初の場所でAsyncTaskを悩ませていますか?全体の時点AsyncTaskのをブロックしないことである。

あなたはSecondTaskが行われたときにFirstTaskを実行したい場合は、FirstTaskSecondTaskFirstTaskonPostExecute()を実行しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top