2011-01-16 13 views
0

私はAndroid用のアラームアプリを作っています。ユーザーがアラームをスケジュールすると、アラームに達するまでスレッドがカウントされ、アラーム音が鳴ります。Android:デバイスがロックされていてもスレッドを実行し続ける

しかし、カウントスレッドは、デバイスがロックされているとき(つまり、スクリーンが半分になってから消えるとき)にはを停止し、何時間も後にロックが解除されていてもそこから続行します。

これはかなり奇妙なアラームアプリになります。私はAlarmManagerを見てきましたが、私の場合には適切ではないようです。なぜなら、アラームが発生したいからです。私のアプリはまだ実行中です。アプリを終了すると、それを停止する必要があります。

注:アラームマネージャは、あなたのアプリケーションが現在実行中の ない場合であっても、特定の 時点であなたの アプリケーションコードの実行を持つようにしたい場合のため を目的としている。ここではAlarmManagerのマニュアルは、けれども言うことです。通常のタイミングでは、 の操作(ティック、タイムアウトなど)のために、 はより簡単で、より効率的に ハンドラを使用します。

「ハンドラ」クラスは、私が達成しようとしているものとはまったく異なるものを意図しているようです。

私はあなたに質問しています:スレッドを有効にして、デバイスがロックされていてもカウントするにはどうすればいいですか?それとも別の方法がありますか?

+1

App Shutdownで何らかの状態を設定し、後でそれを読み込むことはできますか? – gbn

+0

あなたのアプリがまだ「実行中」の場合にのみ、アラームを発生させたいとします。あなたのアプリに「走っている」とはどういう意味ですか? Androidのアイデアは、ここでアプリをユーザーに伝えたいものとは異なる場合があります。 – adamp

答えて

0

通知を使用しない理由は何ですか?サウンド、振動、ライト、ステータスバーにアイコンを表示するように設定できます。通知をキャンセルする場合は、NotificationManagerを使用します。

http://developer.android.com/guide/topics/ui/notifiers/notifications.html#CreateANotification

ヘールトあなたはこれをやっていない必要はありません

+0

私はNotificationManagerを使用しますが、通知を後でスケジュールすることもできますか? –

+0

あなたはそれらがいつ起こるか、または10秒で10回を意味するのかを知ることができますか? –

2

。スレッドの周りにアラームを置かないでください。 AlarmManager

あなたのアプリが「実行中」であるという概念はありません。それが見えるときだけ意味するのですか? onPause()でアラームをクリアするだけです。

関連する問題