如何获取在`AndroidManifest.xml中定义的`BroadcastReceiver`实例`
我的应用程序中有一个如何获取在`AndroidManifest.xml中定义的`BroadcastReceiver`实例`,android,broadcastreceiver,android-broadcastreceiver,Android,Broadcastreceiver,Android Broadcastreceiver,我的应用程序中有一个BroadcastReceiver,它在AndroidManifest.xml中定义如下: <receiver android:name=".receiver.MyTaskReceiver"> <intent-filter> <action android:name="xxx.xxx.xxx" /> </intent-filter> </receiver> 当接收者有意向时,我会先做
BroadcastReceiver
,它在AndroidManifest.xml
中定义如下:
<receiver android:name=".receiver.MyTaskReceiver">
<intent-filter>
<action android:name="xxx.xxx.xxx" />
</intent-filter>
</receiver>
当接收者有意向时,我会先做一些一般性的事情,比如保存数据
但是如果指定的活动显示给用户,我需要更改活动的视图,因此我使用ReceiverListener
来执行此操作。在onCreate
中将侦听器设置为MyTaskReceiver
,并在onDestroy
中设置null
然后出现了一个问题,如何获取MyTaskReceiver
的实例,以便为其设置侦听器
或者有没有其他方法来实现我想要的
谢谢。您可以像这样在活动中注册接收者:
private void registerBroadcastReceiver() {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(xxx.xxx.xxx);
registerReceiver(this.broadcastReceiver, intentFilter);
}
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
//do whatever need to be done
}
};
希望有帮助!:)
并记住注销您的接收器(例如在onDestroy()
)
在清单文件中定义接收者时,不需要对接收者的引用。只需在BroadcastReceiver类中处理意图。不幸的是,Receiver不是这样工作的。将创建该实例,并将
intent
交付给onReceived
,然后销毁。您无法向其注册侦听器。看看@Natalia answer。这似乎就是你想要的。@Budius你的评论就是我想要的答案,谢谢。我知道我可以在活动中注册BroadcastReceiver,但我的接收器不依赖于特殊活动,我需要它在应用程序运行时工作,而不是在活动运行时工作。谢谢你:)
private void registerBroadcastReceiver() {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(xxx.xxx.xxx);
registerReceiver(this.broadcastReceiver, intentFilter);
}
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
//do whatever need to be done
}
};
unregisterReceiver(this.broadcastReceiver);