Android和可配置的应用程序,可重复使用的活动

时间:2012-07-25 16:43:37

标签: android android-activity dependency-injection configurable

我正在开发一个项目,在那个阶段必须为不同的客户定制。应用程序包含一些业务逻辑和UI的15种不同活动。让我们假设活动A开始B,B开始活动C. A知道B,B知道C.我希望能够交换活动B(使用不同的布局,有点不同的逻辑来处理用户交互),但是请假A和C完好无损。实现这一目标的最佳方法是什么?我将为不同的客户开展越来越多的不同活动(服务类似的目的),因此解决方案需要处理许多不同的配置。

我计划将自定义活动拆分到不同的库并使用DI容器(RoboGuice 2.0)注入它们,具体取决于配置,但看起来我仍然需要将所有活动放在manifest.xaml中,这需要双重工作(编辑清单+配置DI容器)。

2 个答案:

答案 0 :(得分:1)

  

A知道B,B知道C。

在这种情况下听起来不太明智。

  

我希望能够交换活动B(使用不同的布局,稍微不同的逻辑来处理用户交互),但保持A和C不变。

然后将A,C和所有其他常用代码放入Android库项目中。将B和其他客户特定代码放在依赖于库的客户特定项目中。为A(在库中)确定如何最好地启动B(为客户)。例如,您可以让所有特定于客户的项目使用相同的<intent-filter>(具有良好的应用程序特定和其他模糊的操作字符串)来宣传B,并且A可以简单地使用与此匹配的Intent过滤startActivity()。然后A在一般意义上知道B(“这里是B动作”),而不知道B实现,这是客户特定的。

  

我计划将自定义活动拆分到不同的库并使用DI容器(RoboGuice 2.0)注入它们

这听起来像是用别克拍飞,但也许你对DI有着悠久的历史。

  

但看起来我仍然需要将所有活动放在manifest.xaml中,这需要双重工作(编辑清单+配置DI容器)

然后放下DI容器。

答案 1 :(得分:0)

也许,您可以将项目置于版本控制之下,而不是在代码中执行任何操作,对于某些文件,您可以为不同的客户分配不同的分支。