私は、AsyncTasksが起動アクティビティとともに破棄されないというステートメントをテストしました。そしてそれは本当です。
AsyncTaskに、Log.i()
3秒ごとに1分間メッセージを公開するようにしました。そして、活動の方法にLog.i()
メッセージを入れました。onDestroy()
アクティビティが破棄されているのがわかりますが、AsyncTaskは20個のメッセージをすべて終了するまで実行を続けLog.i()
ます。
そして、私は混乱しています。
AsyncTaskが
publishProgress()
破棄されたUIに入った場合はどうなりますか?
なんらかの例外が発生すると思いますよね?AsyncTaskがデータをグローバル変数に格納する場合はどうなり
class Application
ますか?
ここではわかりません、NullPointer例外ですか?アプリを再起動するとどうなりますか?
おそらく新しいAsyncTaskを起動します。まだ実行中のAsyncTaskと再接続できますか?マザーアプリが破棄された後、AsyncTaskは不滅ですか?
たぶんそうです、UIアプリケーションが表示されなくなったり、破壊されたりしている間、すべてのLogCatアプリがメッセージのログを記録し続けるにはどうすればよいでしょうか。そして、それらを再度開くと、「死んでいる」間に生成されたメッセージが表示されます。
これはすべて議論のように思えますが、質問はタイトルにあります。私はこの孤立したAsyncTaskを持っています。これは、アプリが再起動されたときに再接続したいのですが、その方法がわかりません。
なぜこれが非常に重要なのかを説明するのを忘れました。向きの変更が発生すると、アプリは破棄されます。また、AsyncTaskによって生成されたデータを失いたくないので、停止して再起動したくありません。向きを変えた後も続けて再接続したいだけです。