静态注册广播
效果图
- 我们需要先写一个简单的广播监听类
public class StaicReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra("message");
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
}
- 在AndroidManifest中注册广播
<receiver android:name="com.example.demo7.StaicReceiver">
<intent-filter >
<action android:name="com.broadcast" />
</intent-filter>
</receiver>
- 发送广播
Intent intent = new Intent(MainActivity.this,StaicReceiver.class);
intent.putExtra("message","测试静态注册广播~");
sendBroadcast(intent);
注意:在安卓版本8.0后无法接收隐式广播,所以我们需要转成显式广播。
动态注册广播
- 我们需要先写一个简单的广播监听类
class Receiver extends BroadcastReceiver {
public final static String intentKey = "startTestActivity";
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra("message");
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
}
- 动态注册广播
Receiver receiver = new Receiver();
registerReceiver(receiver, new IntentFilter(Receiver.intentKey));
- 发送广播
Intent intent = new Intent(Receiver.intentKey);
intent.putExtra("message","测试动态注册广播~");
sendBroadcast(intent);