为何不加Log看看呢 ?  如果Activity结束掉了,就直接cancel掉该AlarmManager吧。  推测的话,应该可以工作。

解决方案 »

  1.   

    能正常工作的
    已经添加到 alarmmanagerservice里面的,alarm的运行跟当前activity是否活着没有多大关系,主要是alarmmanagerservice和添加时的intent吧
      

  2.   


    顶,能工作,只要system_server活着
      

  3.   

    谢谢楼上各位的指点。貌似网络上对 alarmmanagerservice有各种解释,有说进程结束 alarmmanagerservice失去生命,也有说进程结束 alarmmanagerservice不会结束生命。
    本人在activity里声明了一个 alarmmanagerservice去repeat一个SERVICE.进程结束后,service是没有反映的。当然也许是service被结束了,所以service没有反映。我在验证一下
      

  4.   

    假设alarmmanagerservice一旦被声明后,就脱离进程存在。那么用alarmmanagerservice调用一个SERVICE应该需要设置FLAG成为类似NEW_TASK这样的。可是具体怎么用代码实现,我就不知道了。普通的ACTIVITY调用SERVICE,要设置FLAG为NEW_TASK,我知道。
      

  5.   

    http://bbs.csdn.net/topics/370038197alarmmanagerservice是service运行在system_server进程,alarmmanager是client,运行在你的进程。
      

  6.   

    毫无疑问可以继续工作。
    ams(alarmamanagerservice,下同)是运行在system_server进程,当你注册一个alarm到ams中去的时候,只要你没有主动的取消他并且时间也没到,那么其肯定会在制定的时间内回调你的pendingintent。因为你的所有的intent的内容都是保存在activitymanagerservice的mIntentSenderRecords的一个hashmap中,并不会因为你的进程的结束而销毁,只要你注册到ams中,同时没有主动去cancel,那么到时见就会执行你的pendingintent可以看下这篇文章
    http://blog.csdn.net/vicluo/article/details/8484939
      

  7.   

    在 设置->应用信息->强行停止,这个时候, AlarmManager是会被kill掉的啊