2011-11-10 1 views
3

私のアプリはサービスとアクティビティの両方を持っています。サービスが強制終了されると、プロセスはまだ生きていますか?

私のアプリのプロセスが実行されているとします。そして、しばらくすると、Android OSはメモリ不足のために私のアプリでサービスを終了させます。私の質問は、Androidがサービスだけを殺してプロセスを生き残ることが可能なのでしょうか?あるいは、サービスが殺されたときに、そのプロセスも殺さなければならないのですか?

ありがとうございました。

答えて

3

私はこの99.9%を確信しています。サービスがあれば、そのプロセスも行きます。低メモリ状況など、サービスを強制終了する条件は非常に厳しいものです。私の経験では、サービスが終了するとアプリ全体が殺されるということです。サービスとプロセスは結びついています。はい、プロセスを強制終了せずに手動でサービスを停止することはできますが、OSがメモリ不足のためにサービスを停止した場合は、バイアバイプロセスがほぼ確実です。

参照Hackbodの回答とコメント:Android service killed

http://developer.android.com/reference/android/app/Service.htmlを参照してくださいonLowMemory:全体的なシステムのメモリが不足しているとき

これはと呼ばれ、 を締めしようとするプロセスを実行している積極的に希望彼らのベルト。 これが呼び出される正確なポイントは定義されていませんが、 一般的に、すべてのバックグラウンドプロセスが終了したときに発生します。 が殺されました。つまり、プロセスを殺す地点に達する前です。 ホスティングサービスとフォアグラウンドUI殺害を避けるために。

背景情報:http://about-android.blogspot.com/2010/07/lifecycle-of-android-application.html

また、これは興味深いです:Will we leak the android service connection if the client's process is killed by android?

+0

注:Androidのは、プロセスを殺すことなく、サービスを破壊することができます。それはAndroidがサービスをもう動かす必要がないと判断したときです。 1つのケースは、アクティビティーをサービスにバインドして後でアクティビティーを破棄する場合です。今問題は「メモリ不足」の状況です。この場合、プロセスが死ぬことはほぼ確実です。たぶん、Hackbod、CommonsWareや他のAndroidデベロッパーがこれを絶対的に確かめることができますか? –

関連する問題