まず基本的な使い方を調べる
・Handler
Handler.postDelayed()はこんな感じ
new Handler().postDelayed(new Runnable() { @Override public void run() { hoge(); } }, 1000);//1s delay簡単だね
・AlarmManager
AlarmManagerはここら辺で紹介されてるね
AlarmManagerで指定した時間に処理させる
AlarmManager
メソッドはこんなのがある
set(int type, log triggerAtTime, PendingIntent operation)
ワンショットの人
setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
繰り返す人
setInexactRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
おおざっぱに繰り返す人
ざっくりと特徴をあげると、
・サスペンドしてたらレジュームしてくれるオプションがある
・triggerAtTimeはブートしてからの時間かUTCとか指定しないといけない
ということは・・・
AlarmManagerの使いどころはやっぱり定時処理が強い感じだね。
それこそ目覚まし時計的なところが使いどころなわけだ。
後は寝てたら起こしてくれる_WAKEUPオプションがあるんだから、そこらへんの人がおいしい目を見そうだね。
でも、数秒後になんかやるとか単純なものである限りpostDelayed()使ったほうが楽な気がする。
実装的に。
Y.A.M の 雑記帳さんところで書いてあった注意書きはそういうことかな。
---
20130226 追記
AndroidDevelopersにしっかり書いてあった
Note: The Alarm Manager is intended for cases where you want to have your application code run at a specific time, even if your application is not currently running. For normal timing operations (ticks, timeouts, etc) it is easier and much more efficient to use
Handler
.
0 件のコメント:
コメントを投稿