我想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 使用startActivity
. 在活动 B 中,我正在执行一个AsyncTask
并且onPostExecute
我正在发送一个带有 B 活动上下文的广播。但不知何故,A 活动的接收者仍然收到消息。两个接收器具有相同的内容但具有不同的名称。
所以这是我的问题:
- 我应该在方法
unregisterReceiver
上开始新活动时吗?onPause
BroadcastReceiver
我就是这么用的,只打一个电话?每当我发送任何消息时,我都应该一次又一次地注册吗?- 我很确定我没有将任何接收者定义为
Manifest
. 我想这是我做错了。如果这很好,我如何在发送广播时使用 IntentFilter?
如果有不确定的问题,请告诉我。任何有关 BroadcastReceiver 的线索都会很棒而且很受欢迎。