Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

Androidで定期的に処理を実行したい

$
0
0

そんなときはAlarmManagerを使います。 使い方はPendingIntentを作ってAlarmManagerを取得してsetRepeatingする感じ。 一回こっきりでいい場合は、setメソッドでもいいみたいですね。

詳細はAlarmManagerのドキュメントを見よう。

AlarmManager | Android Developers

ということで、こんなコードを書いてやれば現在時間から1分間隔でIntentが投げられるようになります。今回の場合はサービスをキックしています。

Intent intent = new Intent(this, LogService.class);
intent.setAction("LogServiceAction");
PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 60 * 1000, pendingIntent);

Activityでやれば、アプリを起動したあとから有効になります。端末再起動時や、アプリアップデート時にリセットされるらしいので、それがいやならしかるべきIntentを受け取るReceiverを作ってそこで上記処理を書けばいいっぽいです。

ふむふむ。


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>