2

アプリケーションのすべてのアクティビティが表示可能な場合、サービスを実行し続けるにはどうすればよいですか。アプリを終了したときにのみサービスを閉じますか?

アプリのあるアクティビティでサービスを開始し、同じアプリケーションの別のアクティビティで同じサービスを停止する方法はありますか?

ユーザーがアプリケーションを離れたときに、そのサービスを実行し続けたくありません。

4

1 に答える 1

0

「アプリケーション」とそれを残すという概念は実際にはありません。アクティビティの1つからリンクを開き、ブラウザを起動して表示してから、戻るボタンから戻るとどうなりますか?本当にアプリを離れましたか?

あなたのサービスは何をしますか?活動はそれに結びついていますか?その場合、最後のクライアントがバインドを解除した後、自動的にシャットダウンされます。そうでない場合は、作業が終了したときに自動的にシャットダウンする必要があります(Cf. IntentService)。これらのパターンのいずれにも当てはまらない場合は、サービスはまったく必要ないかもしれません。バックグラウンドスレッドだけが必要ですか?

編集(以下のコメントに基づく):

メディアプレーヤーを実行しているサービスの場合、通常の方法は、ユーザーがサービスを制御するためのアクティビティを起動できるようにするサービスの継続的な通知を行うことです。または、JBの通知にボタンを配置して、同様のことを実現します。さらに、サービスをフォアグラウンドサービスにすると、優先度が高くなり、リソースが少ない場合に強制終了される可能性が低くなります。

于 2012-10-18T04:05:38.920 に答える