2016-03-19 8 views

答えて

0

サービスが強制終了されると、サービスは終了します。アクティビティーからサービスを開始することも、アクティビティーをサービスにバインドすることもできますが、それらは独立しています。

Androidシステムは、メモリが不足している場合にのみサービスを強制停止し、ユーザーのフォーカスがあるアクティビティのシステムリソースを回復する必要があります。サービスがユーザーのフォーカスを持つアクティビティにバインドされている場合、そのサービスは強制終了される可能性が低く、サービスがフォアグラウンドで実行されると宣言されていれば、ほとんど終了しません。

4

サービスはアクティビティライフサイクルから独立していますか?

はい。

別のアプリケーションコンポーネントはサービスを開始でき、ユーザーが別のアプリケーションに切り替えた場合でも、サービスをバックグラウンドで実行し続けます。さらに、コンポーネントはサービスとバインドして相互作用し、プロセス間通信(IPC)を実行することさえできます。

ソース:http://developer.android.com/guide/components/services.html

活動が殺された後も実行し続けサービスのだろうか?

に依存します。

それはバインドサービスだとあなたがアンバインドした場合、アクティビティの、onStoponDestroyおよびサービスは、それが死ぬことになる別の場所から結合した、またはcontext.startServiceによって開始されていません。 Read more about bound services.

タスクはandroid:stopWithTask="true"は、そのマニフェストエントリに指定された場合、サービスが殺される(例えば、タスクマネージャに離れスワイプ)を殺された場合。 android:stopWithTask="false"が設定されている場合、サービスはonTaskRemoved(Intent)経由でコールバックを受け取ります。Intentは、削除されたタスクのルートアクティビティを開始するためのインテントです。 Read more about onTaskRemoved(Intent).

サービスが異なるプロセスで実行され、アクティビティがクラッシュした場合、サービスは継続して実行されます(再度バインドされていない場合)。

それ以外はサービスが終了するまで続きます。

関連する問題