【问题标题】:How to determine the sender of Broadcast Intent如何确定广播意图的发送者
【发布时间】:2011-04-14 22:17:57
【问题描述】:

我有一个应用程序,它同时是标准操作 android.intent.action.SET_WALLPAPER 的广播发送方和接收方。我只想在另一个应用程序广播此意图时做一些事情。

有没有办法在 BroadcastReceiver 的 onReceive 方法中确定是谁发起了广播?

【问题讨论】:

    标签: android android-intent broadcastreceiver broadcast


    【解决方案1】:

    没有。

    如果您只想在另一个应用程序(即不是您的应用程序)广播某个动作时做某事,我想应该很容易确定您的应用程序没有发送此广播,并且所以是别人..

    【讨论】:

    • 当然可以,但是这样我必须在我的应用程序中的某处使用某种时间戳/标志 - 我没有明确发送广播,它是由 Android 在我调用 setWallpaper 时完成的。跨度>
    【解决方案2】:

    如果您只关心它是否由您的应用发送,您可以做的是在每次创建 Intent 时添加一个额外的内容。例如:

    broadcastIntent.putExtra('com.android.app.EXTRA_APP_CREATED', true)
    

    然后,当你收到广播时,你可以检查

    if (intent.getExtra('com.android.app.EXTRA_APP_CREATED', false) { ... }
    

    查看您是否创建了意图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多