前言
Android广播Receiver学习笔记
广播的分类
静态注册接收广播
创建一个接收者类
app/src/main/java/.../MyReceiver.java1 2 3 4 5 6 7 8 9
| public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ... } }
|
在清单文件中注册
<action android:name="" />
:定义一个标记,标记内容自定义
app/src/main/AndroidManifest.xml1 2 3 4 5
| <receiver android:name=".MyReceiver"> <intent-filter> <action android:name="receiver1" /> </intent-filter> </receiver>
|
发送广播
intent.setAction("")
:这里设置的标记需要与上面定义的标记相同
app/src/main/java/.../MainActivity.java1 2 3
| Intent intent = new Intent(); intent.setAction("receiver1"); sendBroadcast(intent);
|
动态注册接收广播
创建一个接收者类
app/src/main/java/.../MyReceiver.java1 2 3 4 5 6 7 8 9
| public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ... } }
|
通过Java代码来注册接收者类
filter.addAction("");
:定义一个标记,标记内容自定义
app/src/main/java/.../MainActivity.java1 2 3 4 5 6
| MyReceiver myReceiver = new MyReceiver();
IntentFilter filter = new IntentFilter(); filter.addAction("receiver1");
registerReceiver(myReceiver, filter);
|
发送广播
intent.setAction("")
:这里设置的标记需要与上面定义的标记相同
app/src/main/java/.../MainActivity.java1 2 3
| Intent intent = new Intent(); intent.setAction("receiver1"); sendBroadcast(intent);
|
完成
参考文献
哔哩哔哩——Android架构解析