0

私の活動では、、、を実装しonstop()ますonstart()onstart()

サービスを開始してバインドします。私のサービスは拡張されてIntentService いるので、onStop()電話するだけunbindService()です。

次に、デバイスの設定に移動し、[実行中]タブを開きます->キャッシュされたプロセスを表示します。

  1. タッチバックキーのとき。showcachedprocessesで私のサービスはまだあります。
  2. ホームキーをタッチしたとき。show cached processで、私のサービスはなくなりました。

どちらも。を呼び出しますonstop()

では、なぜこのようなケースが2つあるのか、誰かに教えてもらえますか?または、これはとのライフサイクルについての誤解ServiceですActivity

4

1 に答える 1

0

そのようなケースが2つある理由はわかりません。ただし、Android OSによってサービスがキャッシュされるかどうかは、onStop()を呼び出すために使用するボタンに依存しないことをお伝えできます。プロセスをキャッシュするかどうかの決定は、サービスに必要なメモリの量と、他のいくつかの要因の中でそれを使用する頻度に応じて、OSによって行われます。

この問題についてGoogleを引用すると、「最近使用していたプロセスがRAMにキャッシュされる可能性があるため、プロセスを再度開くと、より迅速に再起動しますが、新しいアクティビティにRAMが必要な場合はキャッシュが消去されます。」[1]

[1]-http://support.google.com/mobile/bin/answer.py?hl=en&answer= 168921

于 2012-08-12T21:54:53.490 に答える