我的应用中有在Service中 用AlarmManager定时去发送消息的功能,现在的问题是,如果应用在程序管理中被强行停止了后,该AlarmManager的定时启动就失效了,我猜测是系统将AlarmManager Kill掉了。请问有什么办法可以让在应用被强行停止后AlarmManager 或者 Service不被Kill掉的办法没。请大侠们指教啊。

解决方案 »

  1.   

    后来的应用不被kill掉是不可能的,kill是從更低层下手,直接拨你进程,你在ondestroy里做点善后工作就不错的了
      

  2.   

    在ondestroy中设置一个闹钟,五秒之后重启。。我试验过,可以不死的service
      

  3.   

    重写onStartCommand的时候,返回
    return super.onStartCommand(intent, START_STICKY, startId);START_STICKY:当Service被系统或不正常的方式终止时,START_STICKY会重新启动该Service,
    START_NO_STICKY 不会重新启动
      

  4.   

    我实验了,AlarmManager 如果在“所有应用”里面进入该应用选择“强行停止” ,AlarmManager 会被杀掉,即使他依托的Service没有被杀。我实验的程序是直接写到系统目录里,实现了不能被任何人或系统kill的功能。所以实验发现 AlarmManager 的生命可以被“强行停止”kill 即使整个应用没有被真实的kill。 Lz继续探索看看还有什么发现没~