如何获取在 `AndroidManifest.xml` 中定义的 `BroadcastReceiver` 实例
How to get the `BroadcastReceiver` instance which is defined in `AndroidManifest.xml`
我的应用程序中有一个 BroadcastReceiver
,它在 AndroidManifest.xml
中定义如下:
<receiver android:name=".receiver.MyTaskReceiver">
<intent-filter>
<action android:name="xxx.xxx.xxx" />
</intent-filter>
</receiver>
这是 MyTaskReceiver
代码:
public class MyTaskReceiver extends BroadcastReceiver {
private ReceiverListener listener ;
@Override
public void onReceive(Context context, Intent intent) {
//do general things
if(listener != null) {
listener.received(); //do special things if the listener is setted up.
}
}
public void setListener(ReceiverListener listener) {
this.listener = listener;
}
public interface ReceiverListener {
void received();
}
}
当接收者得到一个意图时,我会先做一些一般的事情,比如保存数据...
但是如果指定的 activity 显示给用户,我需要更改 activity 的视图,所以我使用 ReceiverListener
来执行此操作。在 onCreate
中设置 MyTaskReceiver
的侦听器并在 onDestroy
.
中设置 null
那么问题来了,如何获取MyTaskReceiver
的实例,然后设置监听器呢?
或者有没有其他方法可以实现我想要的?
谢谢。
您可以像这样在 activity 中注册接收器:
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()
中)
unregisterReceiver(this.broadcastReceiver);
我的应用程序中有一个 BroadcastReceiver
,它在 AndroidManifest.xml
中定义如下:
<receiver android:name=".receiver.MyTaskReceiver">
<intent-filter>
<action android:name="xxx.xxx.xxx" />
</intent-filter>
</receiver>
这是 MyTaskReceiver
代码:
public class MyTaskReceiver extends BroadcastReceiver {
private ReceiverListener listener ;
@Override
public void onReceive(Context context, Intent intent) {
//do general things
if(listener != null) {
listener.received(); //do special things if the listener is setted up.
}
}
public void setListener(ReceiverListener listener) {
this.listener = listener;
}
public interface ReceiverListener {
void received();
}
}
当接收者得到一个意图时,我会先做一些一般的事情,比如保存数据...
但是如果指定的 activity 显示给用户,我需要更改 activity 的视图,所以我使用 ReceiverListener
来执行此操作。在 onCreate
中设置 MyTaskReceiver
的侦听器并在 onDestroy
.
null
那么问题来了,如何获取MyTaskReceiver
的实例,然后设置监听器呢?
或者有没有其他方法可以实现我想要的?
谢谢。
您可以像这样在 activity 中注册接收器:
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()
中)
unregisterReceiver(this.broadcastReceiver);