0

私の小さな実験の観測ではわかりません。 IntentServiceのライフサイクルが、すべてのIntentが処理された時点で停止することを理解しています。MainActivityに関するIntentServiceのライフサイクル

私の実験では、IntentServiceを開始したActivityの寿命に基づいてIntentServiceの寿命の関係を特定しました。

MainActivity:ResultReceiverを作成し、IntentServiceに渡します。

MyResultReceiver:onReceiveResultをリッスンし、ログ行を書き込みます。

IntentService:結果を返す前に、onHandleIntent の開始、破棄、および終了時にログ行を書き込みます。実験のために15秒のスレッドスリープもあります。

  1. 定期場合は、すべてのログラインはIntentServiceのonDestroy含めて書かれています。
  2. アクティビティのonPauseからアプリログラインを最小化するとログに記録されます。その後、スリープ時間の後、保留中のすべてのログラインフォームIntentServiceは、onDestroyを含めてログに記録されます。
  3. 私はアプリを殺すと、Androidスタジオからのログが表示されますが、アプリは終了していますが、IntentServiceのonDestroyのログは表示されません。

この3番目のケースは私には手を差し伸べてしまいました。Android Studioはログを受け取るための接続を失ったか、IntentServiceが別の状況になったのですか?

私はそれがAndroid Studioのためだと推測していますが、私は確信しています。

よろしく、

ハルシャ

答えて

0

たぶんonTaskRemoved()はその状況に呼ばれているのですか?

https://developer.android.com/reference/android/app/Service.html#onTaskRemoved

+0

この場合、結果は送信されませんが、それでもIntentServiceは、自己が停止となりOnDestroyの行をログに記録されますが – harshal

+0

を印刷してしまっているはず 'onDestroy()は'残念なことに、呼び出されること。保証はありません https://stackoverflow.com/questions/7236782/is-an-android-service-guaranteed-to-call-ondestroy –

関連する問題