Android中使用AlarmManager需注意设置进程属性
来源:互联网 发布:手机标尺软件 编辑:程序博客网 时间:2024/05/16 10:06
http://blog.csdn.net/choujs/article/details/8042938
在Android中,AlarmManager提供了不受休眠状态的系统定时功能,其一般使用方法如下。
1、创建一个BroadcastReceiver类的子类,接收定时器事件:
- public class MyReceiver extends BroadcastReceiver {
- ......
- }
2、在AndroidMenifest.xml中定义上述广播事件接收类的定义:
- <receiver android:name=".MyReceiver">
- </receiver>
3、在程序中在需要时设置定时器:
- Intent intent = new Intent(context,MyReceiver.class);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
- AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
- alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP , SystemClock.elapsedRealtime() + ms, pendingIntent);
经过ms毫秒之后,MyReceiver会被调用,从而实现定时触发。
但是,上述实现存在一个问题:如果设置定时器的进程被杀死之后,定时器事件就不会触发。而在Android中,系统在需要时会自动终止后台进程,因此在定时过程中,进程被杀死的可能性是非常之大的,特别是在一些内存较少的设备中,基本上后台进程所设置的定时器很难被触发。
为了让定时器在进程被终止后还能触发,需要对上述实现做一个小的修改:在AndroidMefest.xml中如下定义广播接收类:
- <receiver android:name=".MyReceiver" android:process=":newinst">
- </receiver>
0 0
- Android中使用AlarmManager需注意设置进程属性
- Android中使用AlarmManager需注意设置进程属性
- Android中使用AlarmManager进程被删除的解决办法
- Android 使用AlarmManager设置闹钟
- 在Android中使用AlarmManager
- 在Android中使用AlarmManager
- Android 中 AlarmManager的使用
- Android中alarmManager的使用
- Android中AlarmManager的使用
- 在Android中使用AlarmManager
- Android中AlarmManager的使用
- Android中AlarmManager使用示例
- Android中AlarmManager的使用
- Android 设置定时提醒,AlarmManager简单使用
- Android---AlarmManager闹钟设置
- Android - AlarmManager设置闹钟
- Android中AlarmManager使用示例(持续更新,关于时间的设置已经更改)
- Android中AlarmManager详解以及利用PendingIntent设置闹钟
- Java中super的几种用法并与this的区别
- 开灯问题
- 编程
- SharePoint 2010 master page 控件介绍(3) :页面主体内容
- ORA-01855: AM/A.M. or PM/P.M. required问题排查与解析
- Android中使用AlarmManager需注意设置进程属性
- 数学相关专题1
- POJ 2386 Lake Count 简单的递归深搜
- 三步找回被删并清空了回收站的文件
- 多读些demo
- DRM in Android
- 【Java核心技术——对象克隆】
- 如何阅读一篇论文
- Java编程提高性能时需注意的地方