实际开发中,要做一些定时操作
比如三分钟后执行某段代码
一般这时候我们会首先想到Timer
但是如果这个时间比较长
比如30天之后去执行
只用Timer就不行了。
这里提供一个比较快捷方便的方式
就是使用AlarmManager这个类
即系统的定时服务
使用起来也很简单,配合广播即可
具体代码如下:
//30天以后启动广播
//获取系统服务
AlarmManager manager = (AlarmManager)MyService.this.getSystemService(Activity.ALARM_SERVICE);
//设置定时时长
long anHour = 30l * 60 * 60 * 1000 * 24;//30天以后
long triggerAtTime = System.currentTimeMillis() + anHour;
Intent i = new Intent(MyService.this, TimeReceiver.class);
//发送广播
PendingIntent pi = PendingIntent.getBroadcast(MyService.this, 0, i, 0);
//发送定时消息
manager.set(AlarmManager.RTC, triggerAtTime, pi);
在需要定时操作的时候
设置相应的时长发送广播
然后自己再在广播里执行操作即可