Android:当Activity收到广播时如何检测发件人是否是活动本身?

时间:2013-06-25 20:09:19

标签: broadcastreceiver ipc localbroadcastmanager

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

1 个答案:

答案 0 :(得分: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方法中读出来),但我发现这是一种非常简单的获取方式来电者是谁。