2012-03-15 24 views
2

私が作っているウィジェットには時計があり、システムクロックに同期して毎分更新したいと思っています。 ACTION_TIME_TICKは完璧なソリューションだと思われますが、多くの研究ではAppWidgetでは不可能だと答えている人がいますが、他の人は回避策があると言われていますが、非常に曖昧です。Android:ACTION_TIME_TICK in AppWidget

AlarmManagerを頻繁に更新する必要がないので、システムクロックが分単位で変化してバッテリがいっぱいになった場合に分が変更されるようにしたいと思っています。

ACTION_TIME_TICKの回避策はありますか、バッテリーの消耗を最小限に抑えてシステムクロックと同期して毎分更新するにはどうすればよいですか?

答えて

4

になるサービスを使用していても、バックグラウンドでいたときにそれを表示する必要がある場合、回避策はありますACTION_TIME_TICK

ACTION_TIME_TICKのためにすでに実行されている何かからregisterReceiver()経由のみを登録することができます。あなたの場合、その「何か」は常に実行されているServiceである必要があり、それは一般に反パターンです。ユーザーとOSは、必要なときにそのサービスを取り除くことができます。

"システムクロックとの同期"の要件を軽く緩和する方法が見つかったら、AlarmManagerを使用してください。結局のところ、AndroidはRTOSではないので、はありませんは、保証された意味で「システムクロックと同期して」います。

AlarmManagerを使用すると、最初のアラームを次の分の「上」に指定し、60秒の周期でsetRepeating()と指定します。または、set()を次の分の「トップ」にスケジューリングしてから、自分の処理の一部としてset()経由で次の1つをスケジューリングします。

+0

Gotcha。少なくとも私は状況のより良い説明を得た。私は、AlarmManagerと他のいくつかの例を詳しく見て、そこから行くでしょう。ありがとう。 – user1269977

0

あなたは自分のアプリはその後、ちょうどasyncTask 使用してそれを更新する実行されますが、あなたが必要な場合は、それは価値が最良のアイデア

関連する問題