关于SDK>=26之后静态广播失效问题(Background execution not allowed: receiving Intent)

2019/02/08 14:18
阅读数 3.9K

 在 SDK 26,通过令静态注册的广播接收器失效 以限制后台过多应用启动,接受广播等情况。

当运行时,会有以下LOG:

Background execution not allowed: receiving Intent

 

1.  如果是自己编写发送广播,可以通过 以下方式使广播工作

  (1) 

if(Build.VERSION.SDK_INT >= 26){
  //参数1-包名 参数2-广播接收者所在的路径名
  ComponentName componentName=new ComponentName(getApplicationContext(),"com.code.tx1n.tochat.MessageReceiver"); 
  
  myIntent.setComponent(componentName); }

  (2)  

 if(Build.VERSION.SDK_INT >= 26){

   //此方法功能更强大一些,但硬编码存在隐患

  myIntent.addFlags(0x01000000);

2. 如果是接收隐式Intent,则只能通过动态注册广播接收器解决

  

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部