android系统中,当碧瞎应用安装完成以后会发出一个广播action的值为android.intent.action.PACKAGE_ADDED。只要监听这个广播就可以了。
监听方法悉慧核,创建一个BroadcastReceiver,注册睁掘时添加过滤器,过滤器中添加以上action。
完成以上步骤,当应用安装完成后,你的应用就会收到广播。
注册广播的分类:静态注册和动态注册。
静态注册:在清单文件祥闹里直接注册,从app开启到app销毁,一直在接收广播,接收广播时间长,但是接收广播的优先级低于动态注册广播。
动态注册:动态注册,动态销毁,从onCreate到取消注册,期间接收广播,接收广播时间是短且可控,接收广播的优先级高。例如:
发送广播:
Intent i = new Intent()
i.setAction("ACTION_CLOSE")
sendBroadcast(i)
接受广播:
onCreate(){
//注册广播的接受者
IntentFilter filter = new IntentFilter()
filter.addAction("ACTION_CLOSE_ACTIVITY")
receiver = new InnerReceiver()
registerReceiver(receiver, filter)
}
private class InnerReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//TODO 当前Activity接收到广播 需要做的事情
}
}
}
//注销广播
@Override
protected void onDestroy() {
super.onDestroy()
unregisterReceiver(receiver)
}
2.引入广播的原因:
a) 不同的app之间传信宴或通用
b)发出一条指定,需要多个Activity都需要有反应
注意:以上仅供参考,如谨祥罩有疑问,请追问,谢谢。
关注 【网罗开发】微信公众号,回复【160】便可领取。
网罗天下方法,方便你我开发 ,更多Android技术干货等待领取,所有文档会持续灶塌更新,欢迎关注一起成长!
总结一下使用ACTION_BOOT_COMPLETED的广播,解决app开机自启动的问题
1.首先在你的工程上建一个广播接受铅悄的类,继承BroadcastReceiver:
2.然后要在AndroidManifest.xml中加入权限和配置相关信息:
3.在application标签中,配置以下相关信息:
补充说明:
1.查看系统中是否安装了类似360管家的软件,为了加快开机速度,默认是关闭掉开机广播的,只需要在设置中打开即可。
2.如果监听不到广播,可以尝试同时监听广播和sd卡。
3.同时监听广播和sd卡,在application标签中隐激圆,配置以下相关信息:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)