动态注册,在程序没有启动的情况下收不到消息,当注册后才可以收到消息
安卓8.0后发送者需要定义接受者的包名
发送方:
MainActivity中
Intent intent=new Intent();
intent.setPackage("com.example.recv_1");//接受方包
intent.setAction("xxxx");//自己定义action
intent.putExtra("txt","123456789");
sendBroadcast(intent);
接受者:
动态注册不需要在AndroidManifest.xml中进行注册recv
MainActivity中
注册recv:
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction("xxxx");//发送方的action
Bro br=new Bro();
registerReceiver(br,intentFilter);
取消注册
unregisterReceiver(br);
//当接受到广播后会自动调用
public class Bro extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,"接收到", Toast.LENGTH_SHORT).show();
}
}
本文详细介绍了在安卓系统中如何使用动态注册广播接收器,包括发送广播的方法、动态注册接收器的过程以及如何取消注册。重点讲解了安卓8.0之后的新特性,即发送广播时需要指定接收方的包名。
553

被折叠的 条评论
为什么被折叠?



