Android 8.0及以后,不能监听隐式的系统广播,就动态的注册广播, 或者
如果一定要Manifest静态注册,那么当发送广播的时候,指定广播接收者的包名,即发送显式广播
第一步,写MyReceiver
...
public class MyReceiver extends BroadcastReceiver {
private static final String TAG = "lkj";
@Override
public void onReceive(Context context, Intent intent) {
String h = "..";
h = intent.getStringExtra("package");
Log.i(TAG, "onReceive: 接受到广播 " +h);
Toast.makeText(context,"接受到广播 " + h, Toast.LENGTH_SHORT).show();
}
}
...
第二步,注册广播接受者
...
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initReceiver();
}
private void initReceiver() {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.xiaoqiang.try.something.receiver");
MyReceiver receiver = new MyReceiver();
registerReceiver(receiver, intentFilter);
}
}
...
网友评论