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

 在 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,则只能通过动态注册广播接收器解决

  

猜你喜欢

转载自www.cnblogs.com/xfdmyghdx/p/10356154.html
今日推荐