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