美文网首页
在杀死进程后,如何收到广播呢?

在杀死进程后,如何收到广播呢?

作者: _蘇芳_ | 来源:发表于2017-04-01 13:59 被阅读133次
    • 先说结论:
      3.1之前,可以。
      3.1之后,系统广播不可以。自定义广播可以。
    • 原因:
      在3.1之后,系统的package manager增加了对处于“stopped state”应用的管理,
      所谓“stopped state”就是说该app从未运行过运行过但是现在停止运行了
      同时系统增加了2个Flag:
      FLAG_INCLUDE_STOPPED_PACKAGES
      FLAG_EXCLUDE_STOPPED_PACKAGES
      google在3.1之后给所有的广播都默认加上了FLAG_EXCLUDE_STOPPED_PACKAGES,所以在进程没了的情况下,是收不到广播的。

    但是自定义广播的话,我们可以

            Intent brIntent = new Intent();
            brIntent.setAction("uu");
            brIntent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
            sendBroadcast(brIntent);
    

    这样手动添加一个flag,就可以了。
    所谓葫芦娃保活措施就可以这么搞起来

    相关文章

      网友评论

          本文标题:在杀死进程后,如何收到广播呢?

          本文链接:https://www.haomeiwen.com/subject/ilyiottx.html