频道栏目
首页 > 程序开发 > 移动开发 > 其他 > 正文
没有启动程序无法接受广播问题解决
2017-03-30 09:22:00      个评论      
收藏   我要投稿

没有启动程序无法接受广播问题解决:Android3.1开始,新安装的程序会被置于”stopped”状态,并且只有在至少手动启动这个程序一次后该程序才会改变状态,能够正常接收到指定的广播消息。Android这样做的目的是防止广播无意或者不必要地开启未启动的APP后台服务。

也就是说在Android3.1及以上的版本,在未启动的情况下通过应用自身完成一些操作是不可能的,但Android提供了一种借助其它应用发送指定Flag广播的方式,达到应用在未启动的情况下仍然能够收到消息的效果。

从Android 3.1开始,系统给Intent定义了两个新的Flag,分别为FLAG_INCLUDE_STOPPED_PACKAGES(表示包含未启动的App)和FLAG_EXCLUDE_STOPPED_PACKAGES(表示不包含未启动的App),用来控制Intent是否要对处于停止状态的App起作用,具体的操作方式如下:

在需要接收广播的应用中静态注册广播,并定义好action,并且需要指定android:exported=”true”;

在发送广播的应用中添加如下代码段:

“`
Intentintent=newIntent();
intent.setAction(“com.uperone.widget.action”);
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);sendBroadcast(intent);
点击复制链接 与好友分享!回本站首页
上一篇:java执行shell命令
下一篇:关于UITableView调用deleteRowsAtIndexPaths程序崩溃的问题
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站