【第一行代码】5.3.2发送自定义广播

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button button=findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent=new Intent("com.example.broadcasttest.MY_BROADCAST");
            sendBroadcast(intent);
        }
    });
  ...
}
 
  
按照书中的代码,运行程序,发现无法接受到自定义广播,百度之后了解到Android8.0对静态广播的使用进行了一些限制(https://developer.android.google.cn/about/versions/oreo/android-8.0.html),因此在使用Intent时,需要添加

intent.setComponent(new ComponentName("activitytest.example.com.broadcasttoast",
        "activitytest.example.com.broadcasttoast.MyBroadcastReceiver"));
添加之后,可正常接受广播。

你可能感兴趣的