ウィジェットに関する公式ドキュメントを理解している限り、私は少し混乱しています。
「標準的な」方法は、BroadcastReceiver
を定義し、更新頻度をミリ秒単位で定義することです。この方法では、最小更新間隔を 30 分にして、バッテリーの電力を節約できます。合理的に聞こえます。
Google のドキュメントを読んで見つけた「手動」の方法は、AlarmManager
. この方法を使用すると、より長い更新間隔が可能になり (もちろんお勧めできません!)、スリープ中にデバイスを起動しないアラーム タイプを使用することも可能です。(デバイスが何らかの理由で起動するとすぐに、イベントがトリガーされた後、いつでもインテントが送信されると思います-そうですか??)
今、私は次の考えに混乱しています: ウィジェットはホーム画面にあります。または、少なくともそれは彼らが見つかる最も一般的な場所です. Android では、ホーム画面に多くのページ (標準では 5 または 7) が用意されているため、ユーザーがウィジェットを配置しても、ウィジェットが表示されない場合があります。
ウィジェットが表示する情報が非常に単純なテキスト(現在の時刻など) であり、必要なときに遅延なく計算または導出できる限り、更新頻度やデバイスのウェイクアップ インテントさえ必要ありません。見えない!
しかし、デバイスがオンである限り、またはより具体的には、画面がオンでウィジェットが表示されている限り、多くの更新イベントが必要です! 秒を表示する時計のように、毎秒再描画するインテントが必要です!
それはどのように実現できますか?「Android アナログ時計」はどのように実現されるのか?方法 A (「標準」) も B (「手動」) も更新頻度が高くなりませんが、デバイスがオンになっており、ウィジェットが表示されている場合に限ります。
誰かヒントを教えてくれませんか???