AlarmManager について

AlarmManagerとは

 指定した時間に処理を実行したり、一定間隔で連続して処理を実行出来る仕組みです(cronみたいなもの)。たとえば1時間に一度RSSを取得しにいってウィジェットの情報を更新させたりとかに使えます。

問題点?

しかし!このAlarmManager、当然のごとくスリープ状態でも機能し続けるのであまり短い間隔で処理を呼び出してるとCPUリソースをガンガン消費してバッテリーも食いつぶす恐れがあります…(そもそも基本的にそんなに短い間隔で呼び出す用途に用いるものではないかも)


たとえばAlarmManagerを使って、一定間隔(10秒とか)でスライドショーウィジェットの表示を切り替えたりするような処理を行うとき(非常に限定的w)は、スリープ状態になったら(スクリーンがOFFになったら)処理をキャンセルしたほうがいいです。スクリーンがONになったら再びAlarmManagerをsetすればいい


ただしAppWidgetProvider単独ではスクリーンオフのブロードキャストを受信できないため、Service等を利用する必要があると思われます。


ということで、結局何が言いたいのかよく分からない記事でした!以上!