我正在使用新的Android构建系统创建应用,并使用LocalBroadcastManager
将IntentService
的通知重新发送回Activity
。
我已经将以下产品风格定义为3个独立应用程序构建的一部分;
productFlavours {
london {
packageName 'com.example.lo'
}
dubai {
packageName 'com.example.du'
}
}
当我使用这些产品中的任何一种构建应用程序时,我没有通过管理器获得任何广播。我已经确认服务和活动都在同一个进程中运行。
广播接收器在我的活动的Activity#onCreate
方法中按要求绑定,但不接收任何事件。我还通过打印出活动和服务的进程ID来确认,并且两者都报告这是相同的过程,因此这不是问题。
作为测试,我删除了产品风格,并使用应用清单文件中定义的单个包名构建了应用程序,现在广播管理器似乎按预期运行。在我发送的意图中,我只是设置动作。
我还需要设置其他内容吗?
答案 0 :(得分:1)
如果您查看source code of LocalBroadcastManager
,您会看到如果您将Intent
标记为Intent.FLAG_DEBUG_LOG_RESOLUTION
(使用Intent.addFlags(int)
),则会在logcat中打印出来非常有用的信息:您可能想要尝试使用和不使用风味,并比较结果,看看出了什么问题。
答案 1 :(得分:0)
我在同一个项目中有org.cmpny.app
和org.cmpny.app.additional
个名称空间; LocalBroadcastManager工作正常,在AndroidManifest 中无需调整任何东西(除了LocalBroadcastManager不能与“:remote”服务一起使用,但这是另一点)