0

我的 Android 应用程序使用LocalBroadcastManagerBroadcastReceiver在活动之间进行通信。你如何让一个活动检测到它何时接收到一个Intent来自它自己而不是另一个的Activity?换句话说,如果它等于,你如何获得广播调用者并忽略它this

4

1 回答 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 回答