BroadcastReceiver
私は自分のアプリケーションAsyncTask
で異なる結果インジケータとして使用したいと考えてActivities
いAsyncTasks
ます。私のアプローチは少し間違っているか、何かを逃したと思います。
ここで私がやっていること: まず、メソッドを使用しonCreate
てレシーバーを登録しました。私の受信機は次のようになります。BroadcastReceiver
registerReceiver
protected BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String msg_for_me = intent.getStringExtra("some_msg");
Log.i("Tutorial", msg_for_me);
}
}
私のアプリケーションでは、A と B の活動があります。それぞれに、異なるタスクからメッセージを取得する異なるレシーバーがあります。ところで、はっきりさせておかなければならないのは、A 活動が B 活動を開始するということです。
アクティビティ A でレシーバーを使用し、次にアクティビティ A を使用して B を開始しstartActivity
ます。アクティビティ B で を実行し、B アクティビティのコンテキストでブロードキャストを送信していますAsyncTask
。onPostExecute
しかし、どういうわけかまだアクティビティの受信者がメッセージを取得しています。どちらのレシーバーも内容は同じですが、名前が異なります。
だからここに私の問題があります:
- メソッド
unregisterReceiver
で新しいアクティビティを開始したときにすべきですか?onPause
BroadcastReceiver
それが私が使用している方法ですか、1回の通話のみですか?メッセージを送信するたびに、何度も登録する必要がありますか?- にレシーバーを定義していないと確信しています
Manifest
。これは私が間違っていることだと思います。これでよければ、ブロードキャストの送信中に IntentFilter を使用するにはどうすればよいですか?
不明な質問があれば教えてください。BroadcastReceiver についての手がかりは、素晴らしく、高く評価されます。