3

これは私がやろうとしていることです:

  1. AsyncdoInBackgroundでは、一部のデータがダウンロードされます。
  2. AsynconPostExecuteでは、ダウンロードされたデータが処理され、データが本来あるべきものではない場合、AsyncTask がonPostExecute.

私の質問は次のとおりです。new MyTask().execute();非同期自体から呼び出して再起動するのは悪い習慣ですか? それでいいですか、それとももっと良い方法がありますか?

4

1 に答える 1

2

あなたのアイコンのマーリンのように。確かにドラゴンもいると思います。

あなたはおそらくそれを望んでいないだけですAsyncTaskAsyncTaskAndroidの同時実行に対する包括的なソリューションを意図したLooperものではありませんでした.まったく異なる性質のものをディスパッチするためのものです.ああnew Thread、ルーパーではありません- Java ですぐに利用でき、言語の最も信頼性が高く望ましい機能の 1 つとして広く認識されているものを再設計するだけです!)

エグゼキュータ サービス ( docs目的に似た非常に良い例を含む素敵な Android ドキュメント! ) またはスケジュールされたエグゼキュータ サービス ( docsandroid docs ) を見てください。java.util.concurrentあなたの親友です!

このようにして、 を呼び出すことなく、タスクを作成して複数回送信できますnew

別の質問: onPostExecuteUI スレッドで実行されます。Android ドキュメントから:

onPostExecute(Result), invoked on the UI thread after the background computation finishes 

「ダウンロードしたデータが処理されました」と言います。これには、UI 要素に触れる必要がありますか? これも非同期であるべきではないので、そうではありませんonPostExecuteか?

頑張ってください!

于 2013-10-17T09:23:18.403 に答える