开发者社区> 问答> 正文

移动推送Android SDK:设备重启后,app无法自启动,其他有的app却可以这是为什么?

移动推送Android SDK:设备重启后,app无法自启动,其他有的app却可以这是为什么?

展开
收起
保持可爱mmm 2020-03-27 22:33:04 1004 0
1 条回答
写回答
取消 提交回答
  • 操作系统在启动的时候会发出一个“BOOT_COMPLETED”的系统广播,该广播会发送到该广播的所有广播接收器。但是在Android 3.1中,google为广播增加了FLAG_INCLUDED_STOPPED_PACKAGES和FLAG_EXCLUDED_STOPPED_PACKAGES两个参数用来标识是否将该广播发送到处于停止状态的应用所持有的接收器。系统广播设置了FLAG_EXCLUDED_STOPPED_PACKAGES参数,所以如果应用程序处于停止状态,即使监听启动广播也无法接收到。这一点不仅针对系统启动广播,针对所有的系统广播都一样。需要指出的是,这里的停止状态和Activity生命周期中的stop状态是完全不一样的,包管理器中的stopped state指的是安装后从来没有启动过或者是被用户手动强制停止的应用。判断一个应用程序是否处于停止状态可以在手机中“设备—》应用程序—》XXAPP”中查看。如果该应用的“强行停止”按钮已经变灰,说明该应用已经被强行停止,处于stop状态。另外还有一种情况可以导致应用无法自启动,即如果当前app安装在SD卡,因为系统启动的逻辑是先发出“BOOT_COMPLETED”广播之后再挂载SD卡。

    2020-03-27 22:34:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载

相关实验场景

更多