2

我正在使用新的 Android 构建系统创建一个应用程序,并使用 aLocalBroadcastManager将通知从一个IntentService返回到一个Activity.

我已将以下产品风格定义为 3 个独立应用程序的构建的一部分;

productFlavours {
    london {
        packageName 'com.example.lo'
    }
    dubai {
        packageName 'com.example.du'
    }
}

当我使用这些产品风格中的任何一种构建应用程序时,我都没有通过经理获得任何广播。我已经确认服务和活动都在同一个进程中运行。

我的活动方法中按要求绑定了广播接收器,Activity#onCreate但不接收任何事件。我还通过打印出活动和服务的进程 ID 来确认,并且两者都报告这是同一个进程,所以这不是问题。

作为测试,我删除了产品风格,并仅使用应用程序清单文件中定义的单个包名构建了应用程序,现在广播管理器似乎按预期运行。在我发送的意图上,我只是在设置操作。

我还需要设置什么吗?

4

2 回答 2

1

如果您查看源代码,LocalBroadcastManager您会发现如果您提供Intent标志Intent.FLAG_DEBUG_LOG_RESOLUTION(通过使用Intent.addFlags(int)),它将在 logcat 中打印出非常有用的信息:您可能想尝试使用和不使用风味并将结果与看看出了什么问题。

于 2013-09-29T10:35:52.590 回答
0

我在同一个项目中有org.cmpny.app和命名空间;org.cmpny.app.additionalLocalBroadcastManager 工作正常,不需要在 AndroidManifest 中进行任何调整(除了 LocalBroadcastManager 不能与 ":remote" 服务一起使用,但这是另一点)

于 2014-01-10T15:14:52.770 回答