我的 Android 应用程序使用LocalBroadcastManager
和BroadcastReceiver
在活动之间进行通信。你如何让一个活动检测到它何时接收到一个Intent
来自它自己而不是另一个的Activity
?换句话说,如果它等于,你如何获得广播调用者并忽略它this
。
问问题
1329 次
1 回答
1
我不知道是否有特定的方法可以做到这一点,但是,我会action
在我Intent
正在广播的内容中添加一个特定的方法。它可能看起来像这样:
Intent broadcastIntent = new Intent(MyClass.class.getName());
sendBroadcast(broadcastIntent);
然后,当您收到广播时,您只需检查特定操作:
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(MyClass.class.getName()) {
// Ignore the broadcast as it's the caller calling itself...
} else {
// Do something with the broadcast...
}
}
可能还有其他方法可以做到这一点(比如只是在方法中添加额外Intent
内容,然后在onReceive
方法中读出),但我发现这是获取调用者身份的一种非常简单的方法。
于 2013-06-25T21:46:47.370 回答