为什么自己写的程序被一些下手较狠的进程管理器(如360优化大师的一键清理)杀死后,其中的广播就接收不到广播了?
曾做了一个实验:
假设有程序为A,B和C。A使用AlarmManager定时发送广播并接收广播,B为手动发送广播,C为接收广播。其中Intent的Action都为"com.yehe.mei.off.action.TIME_OUT",A、C的广播接收器都为静态注册,并过虑"com.yehe.mei.off.action.TIME_OUT" Action。
1、当A和C同时运行时,A定时发送的广播,A与C都能接收到;当用360杀死C后,A能接收到A定时发送的广播,而C接收不到。
2、当A和C同时运行时,A设定好定时发送广播后,用360将A杀死,C继续运行,时间到后C并没有接收到AlarmManager发送过来的A设定的Intent。
3、杀死A,当B和C同时运行时,通过B手动发送广播,C能接收到B发送过来的广播;当用360杀死C后,通过B手动发送广播,C便不能接收到B发送过来的广播了。
综上述,足以证明360在杀死程序进程后,程序中的广播接收器和通过AlarmManager设置的定时发送Intent功能都全部失效!
可是为什么系统自带的闹钟,用360怎么杀闹钟都能准时闹呢?如何才能实现和系统闹钟一样的强大,小强一样的杀不死?在下正在写一个定时任务的应用,希望大家帮帮忙,谢谢!