0

AndroidManifest.xmlファイルでは、activityandroid:noHistory="true"属性があります。そのactivityでは、私はAsyncTask長い実行中のタスクを実行しています。 activityに移動してもAsyncTaskが実行され続けますか?または別のactivityを開くと、AsyncTaskが停止しますか?android:noHistory = "true"のAsyncTask

答えて

1

ええ、それは完了するまで続きます。しかし、onPostExecuteでアクティビティで何かをしていないことに注意してください。

+0

例外として、画面にウィジェットを追加して操作することはできません。 – Snicolas

+0

私の理解から、android:noHistory = "true"を使用すると、別のアクティビティが開始されたときに現在のアクティビティが終了します。 AsyncTaskはアクティビティで終了しますか?それとも活動終了後も継続するのだろうか? – Wei

+0

AsyncTaskは別のスレッドであるため、実行されます。 finish()を呼び出すと、アクティビティも停止します。 –

0

それはそれ自身のスレッドで実行されているので続行されますが、UIの更新と画面の回転の処理に関する潜在的な問題があります。

代わりにServiceを起動し、そこでAsyncTaskまたはLoaderを実行することをおすすめします。完了したら、LocalBroadcastManagerを使用して、あなたのServiceが完了し、UIを更新する必要があることをあらゆるアクティビティに知らせることができます。

0

loadersを使用するとよいでしょう。これらのタスク管理はこのような種類のタスク管理を提供し、ローテーションやアクティビティを消滅させるその他の原因の場合は基礎となるasynctaskをキャンセルします。