定義我在我的應用程序一個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您的評論是我想要的答案,謝謝。 –