私のアプリの実行中に他のアクティビティが存在しない場合にのみ、Androidのサービスを停止する方法?
-
19-09-2019 - |
質問
私のアプリ内の他の活動はまだ生きて存在する場合、私はテストすることができます方法はありますか?私はonDestroy方法でサービスを停止するが、唯一の私のアプリから他の活動はまだスタック上に生きている存在しない場合は、これをやりたいために探しています。
私は、通話が主な活動のonDestroy()メソッドでサービスを停止しています。これにより、ユーザーは、その後、ホーム画面を打つと私のアプリをRELAUNCHES、私のアプリでは、いくつかの活動を立ち上げ、私のアプリを起動した場合、彼らは私の注文を破壊し、主な活動は、今私のアプリの他の活動より上になることを除いて完璧に動作します。彼らは私のホーム画面のバックボタンと「バックアウト」をヒットした場合、この状態から、彼らはonDestroy()メソッドをトリガーし、スタック上で開いて他の活動があるにもかかわらず、サービスを殺すでしょう。私は、スタック上で開いて私の他の活動がないと確信している場合にのみサービスを停止することでこれを回避したいです。可能?
解決
私は意志のサービスを起動するにはどうすればよいです 私のいずれかの限り実行し続けます アプリの活動はに残っています スタック、まだときなしに停止します 残る?
startService()
とstopService()
を使用しないでください。代わりに、あなたが本当にバインドされた接続を必要としない場合でも、bindService()
とunbindService()
を使用しています。バインド/アンバインドは、参照カウントされます。あなたはbindService()
フラグでBIND_AUTO_CREATE
を呼び出す場合は、最初のbindService()
コールがあなたのサービスを開始します。そして、全てのbindService()
コールが一致unbindService()
呼び出しがあったとき、Androidは自動的にあなたのサービスをシャットダウンします。