Jim*_*mmy 7 android android-intent
我想用自定义数据广播意图,只有拥有此自定义数据的接收者应该接收这个意图,如何做到这一点?
这是我如何广播意图:
Intent intent = new Intent();
intent.setAction("com.example");
context.sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)
我定义广播接收器如下:
<receiver android:name="com.test.myReceiver" android:enabled="true">
<intent-filter>
<action android:name="com.example"></action>
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
如果您已经定义了广播接收器类,那么下一步是将其注册到您想要接收广播意图的活动/服务上。注册示例:
IntentFilter iFilter = new IntentFilter();
iFilter.addAction("com.example"); //add your custom intent to register
//below is your class which extends BroadcastReceiver, contains action
//which will be triggered when current class received the broadcast intent
MyReceiver myReceiver = new MyReceiver();
registerReceiver(myReceiver, iFilter); //register intent & receiver
Run Code Online (Sandbox Code Playgroud)
如果您销毁活动/服务,为了最佳实践,请不要忘记在同一活动/服务上取消注册广播接收器:
@Override
protected void onDestroy() {
if(myReceiver!=null)
unregisterReceiver(myReceiver)
super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)
我的接收器类:
public class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent intent) {
if(intent.getAction().equals("com.example")){
//DO SOMETHING HERE
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2248 次 |
| 最近记录: |