具有相同服务包的Android两种口味

时间:2015-11-02 21:31:19

标签: android

我在Android Studio中使用相同的代码库创建了多个App的Flavors。在应用程序中,我有一个服务包

com.app.xyz.service

我更改了每种风味的应用ID,如下所示

applicationId "com.app2.flavour1"

applicationId "com.app2.flavour2"
build.graddle

中的

但Service Package保持不变,因为它在每个flavor的共享代码中。 现在问题是,当我在同一设备中安装具有不同应用ID的两种风格时,每个应用实例化服务TWICE。

如何在保持相同服务类代码的同时进行隔离。

2 个答案:

答案 0 :(得分:0)

我和你的问题一样。

我现在找到的唯一解决方案如下:

  • 通过清单文件中的flavor创建服务定义
  • 在每种口味中创建一个服务实现(只需最少的代码:onCreate,...)。
  • 创建一个帮助" " main"中的课程使用我原始服务实现的代码进行项目

不是很好"漂亮"但我的项目只包含两种风格,因此它仍然可读和可维护

答案 1 :(得分:0)

我可以解决以下问题。

我正在发送广播以在服务和应用程序的其他部分之间进行通信。我通过BuildConfig.IDENTIFIER为每个App添加了前缀操作。

现在每个应用程序只听取自己的特定动作,因此每种风格都不会干扰其他风格。

相关问题