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

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

作者: _蘇芳_ | 来源:发表于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