コードを見ずに:メソッドstartService
を呼び出すと、サービスが実行されていないonStartCommand
場合はサービスが開始され、サービスがすでに開始されている場合は呼び出されます。startService
タイマーが開始すると、値(たとえばint
、ライブタイマーを表す値)を呼び出してインクリメントできます。タイマーを停止/終了する必要がある場合はBroadcastReceiver
、Service
(表示したリンクのように)を実装して、他のコンポーネントからの「クローズ」ブロードキャストをリッスンできます(このパターンを使用しService
て、新しいタイマーを通知できます)開始しました(「開始」ブロードキャスト))。
その中でBroadcastReceiver
、Service
ライブタイマーのカウントをデクリメントして、にいるかどうかを確認します。0
その場合は、を停止しService
ます。
上記のアプローチの主な問題はService
、他のアクティビティが強制終了されて再起動されない場合でも、必要なタイマークローズインテントをブロードキャストできない場合でも、いつ確実に閉じるかです(他のアクティビティが強制終了されて再起動されない場合、サービスはいくつかの登録済みタイマーが残っているので、サービスを無期限に実行したくないでしょう)。これを解決するには、実際のコードに関する詳細が必要になります。