- 先说结论:
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,就可以了。
所谓葫芦娃保活措施就可以这么搞起来
网友评论