これは私がやろうとしていることです:
- Async
doInBackgroundでは、一部のデータがダウンロードされます。 - Async
onPostExecuteでは、ダウンロードされたデータが処理され、データが本来あるべきものではない場合、AsyncTask がonPostExecute.
私の質問は次のとおりです。new MyTask().execute();非同期自体から呼び出して再起動するのは悪い習慣ですか? それでいいですか、それとももっと良い方法がありますか?
これは私がやろうとしていることです:
doInBackgroundでは、一部のデータがダウンロードされます。onPostExecuteでは、ダウンロードされたデータが処理され、データが本来あるべきものではない場合、AsyncTask がonPostExecute.私の質問は次のとおりです。new MyTask().execute();非同期自体から呼び出して再起動するのは悪い習慣ですか? それでいいですか、それとももっと良い方法がありますか?
あなたのアイコンのマーリンのように。確かにドラゴンもいると思います。
あなたはおそらくそれを望んでいないだけですAsyncTask(AsyncTaskAndroidの同時実行に対する包括的なソリューションを意図したLooperものではありませんでした.まったく異なる性質のものをディスパッチするためのものです.ああnew Thread、ルーパーではありません- Java ですぐに利用でき、言語の最も信頼性が高く望ましい機能の 1 つとして広く認識されているものを再設計するだけです!)
エグゼキュータ サービス ( docs、目的に似た非常に良い例を含む素敵な Android ドキュメント! ) またはスケジュールされたエグゼキュータ サービス ( docs、android docs ) を見てください。java.util.concurrentあなたの親友です!
このようにして、 を呼び出すことなく、タスクを作成して複数回送信できますnew。
別の質問: onPostExecuteUI スレッドで実行されます。Android ドキュメントから:
onPostExecute(Result), invoked on the UI thread after the background computation finishes
「ダウンロードしたデータが処理されました」と言います。これには、UI 要素に触れる必要がありますか? これも非同期であるべきではないので、そうではありませんonPostExecuteか?
頑張ってください!