スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【Android開発】Android4.4 KitkatでAlarm Managerの一部仕様が変わった?!

アラームがならないことがある?!だと・・・

ちょっと前に、会社で作ったアラームアプリで、アラームがならないことがあると、Android 4.4ユーザから問い合わせがきたんだけど、アラームがならないなんて報告はほぼほぼないんだよね。

しかも、鳴らないときがあるって言うから、おかしいなぁと思って、もしやAndroid4.4でなんかAPIの仕様が変わったのでは?と調べてみると、どうやらtrgetSdkVersionが19以降の場合、AlarmManagerの set() と setRepeating() で指定した時間が厳密ではなくなったっぽい。

Android4.4でAlarm Managerのset()、setRepeating()の仕様変更

どうやら、省電力仕様になったらしく、全てのアプリケーションのアラームを合理的にまとめた時間にデバイスを起こし、まとめてアラームを発火するようになった。内容からして、なんでもかんでもまとまった時間に、set() と setRepeating() でセットしたアラームが発火するわけではなく、スリープしている端末に対して、アラーム毎に起こすのではなく、ある程度発火時間が近いアラームをまとめて、一回起こしたときに発火させるという認識でいいんだと思う。


じゃあ、正確な時間に確実にアラーム鳴らすにはどうしたらええねんって思ったら、アラームを厳密な時間に発火させたいときは、新しいsetExact()メソッドが使えと・・・。


新しいメソッドをそういう仕様にすればいいのに…、と思いつつ…


ただ、先に述べたとおり、この振る舞いは、trgetSdkVersionが19以降で、Android4.4以上だけに適用される。targetSdkVersionを18以下であれば今までどおりの動作するようだ。

プロフィール

basarafire

Author:basarafire
IT関連会社で情報処理の基礎やプログラミング(主にC・Java)を教えています。最近はAndroidの教育や開発なども行ったりしています。

basarafireの開発したアプリに関する内容はこちらから
http://basarafire.jugem.jp/

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
お気に入り
[プレスブログ]価値あるブログに換金可能なポイントを差し上げます。 アクセストレードレビュー
提携
ゲーム
QRコード
QR
リンク
RSSリンクの表示
お気に入り商品
カウンター
おすすめAndroid書籍
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。