开发者社区> 问答> 正文

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

已解决

我集成了移动推送SDK后将设备重启,为什么我的App没有启动,而其他好多App都启动了?

展开
收起
EMAS支持组 2022-09-15 14:21:03 575 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卡。


    更多官方信息

    EMAS官网介绍:https://www.aliyun.com/product/emas

    Devops:https://www.aliyun.com/product/emascrash/mobile_devops

    移动热修复:https://www.aliyun.com/product/hotfix

    移动测试:https://www.aliyun.com/activity/emas/mqcexpert

    移动推送:https://www.aliyun.com/product/cps

    HTTPDNS:https://www.aliyun.com/product/httpdns

    EMAS 控制台: https://emas.console.aliyun.com/products

    2022-09-15 14:44:39
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载

相关实验场景

更多