定义我在我的应用程序一个BroadcastReceiver
了`BroadcastReceiver`实例,它是在AndroidManifest.xml
定义如下:如何获得它在`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();
}
}
当接收器有一个意向,我会做一些一般的东西首先,像保存数据...
但如果指定的活动我显示给用户,我需要改变活动的意见,所以我使用ReceiverListener
来做到这一点。将收听者设置为onCreate
中的MyTaskReceiver
,并在onDestroy
中设置null
。
然后出现一个问题,如何获取MyTaskReceiver
的实例,以便我可以设置一个监听器?
或者还有其他方法可以实现我想要的吗?
谢谢。
你不需要参照接收器,当它在清单文件中定义。只需处理您的BroadcastReceiver类中的意图即可。 – Talha
不幸的是,这不是接收器的工作原理。实例将被创建,'intent'被传递给'onReceived',然后被销毁。你不能注册监听者。看看@Natalia的答案。这似乎是你在找什么。 – Budius
@Budius您的评论是我想要的答案,谢谢。 –