android避免AlarmManager被kill
来源:互联网 发布:大连 旅游 知乎 编辑:程序博客网 时间:2024/06/07 10:02
在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被kill
- android避免service被kill
- Android Service 避免内存回收时被Kill掉
- 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
- Caused by:java.lang.NoClassDefFoundError:org/aoplliance/intercept/MethodInterceptor的解决
- js中childNodes与firstChild、lastChild
- C++成员函数重载、覆盖和隐藏的区别
- Java获取文件的类型(扩展名)
- C++ AMP 介绍(二)
- android避免AlarmManager被kill
- 求两数的正差值
- Linux SWAP 交换分区配置说明
- Servlet 入门理解
- 用C++在Windows上开发SNMP扩展代理(SNMP extension agent) DLL
- Centos安装Unrar以及使用方法
- Error: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-965200530-172.21.3.1
- 关于51的一些理解
- android HttpClient与服务器交互