`で定義されている` BroadcastReceiver`インスタンスを取得するには、それは以下のようにAndroidManifest.xml
で定義されていた方法:私は私のアプリで<code>BroadcastReceiver</code>を持って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();
}
}
...
しかし、もし指定されたアクティビティのI私はアクティビティのビューを変更する必要があるので、これを行うにはReceiverListener
を使用します。リスナーをに設定してonCreate
に設定し、null
をonDestroy
に設定します。
ここで問題が発生します。MyTaskReceiver
のインスタンスを取得して、リスナーを設定する方法はありますか。
または、私が欲しいものを達成するための他の方法はありますか?
ありがとうございました。
それはマニフェストファイルで定義されているときは、受信機への参照を必要としません。あなたのBroadcastReceiverクラスのインテントを処理してください。 – Talha
残念ながら、これは受信者の仕組みではありません。インスタンスが作成され、 'intent'が' onReceived'に渡されて破棄されます。リスナーを登録することはできません。 @Nataliaの答えを見てみましょう。それはあなたが探しているもののようです。 – Budius
@Budiusあなたのコメントは私が欲しい答えです、ありがとうございます。 –