0

ドキュメントを読み直しましたが、タイマーを実行し続けるためにサービスを使用することが正しい方法 (およびその方法) であるかどうかはまだわかりません。

私は基本的にカウントダウンタイマーが欲しいのですが、アプリが閉じられても中断せずに実行したいです(そして進行中の通知として表示されます)。アプリ内の特定のアクティビティが開かれたとき (再開、開いた、通知をクリックして起動したとき)、タイマーから現在の値を取得できるようにしたい (1 秒に 1 回以下)。アプリが閉じられた場合でも、タイマーがアプリのアクティビティやその他のサービスを使用/起動できるようにしたい (またはデータベースにアクセスできるようにしたい)。

したがって、Android開発者のドキュメントを正しく理解していれば、開始されたサービスを使用する必要があります(開始すると、アプリが閉じられてもそのことを実行できるはずです)およびバインドされます(アクティビティがそこからデータを取得できるようにするため)。次に、スタック オーバーフローで同様のトピックを検索したところ、IntentService (アクティビティにデータを送信できますか?)、Handlers、または AlarmManager の使用を推奨する人もいます。

私は本当に混乱しており、最初から正しいアプローチを選択できるようにしたいと考えています (アプリを終了してから、私のアプローチが多くのバッテリーなどを浪費していることに気付くよりも)。ドキュメンテーションの問題は、私が持っていると思われる質問に答えてくれることです。そのため、実際の人に尋ねなければなりません。

4

1 に答える 1

1

私の提案は次のとおりです。

  1. ユーザーがタイマーを開始すると、現在のシステム タイムスタンプが保存されます。
  2. UI で: N ミリ秒ごとに、保存された値を読み取り、それを現在のタイムスタンプと比較します。これにより、diff = 経過時間が得られます。
  3. タイマー/サービス/アラーム マネージャーは必要ありません。ユーザーがアプリに戻るたびに、ステップ №2 を実行して経過時間を表示します。
于 2013-09-18T12:23:08.463 に答える