我想让我的所有活动(7到10个不同的屏幕)向“控制器”提交数据(对不起,如果我错过使用该术语)。
内部所述控制器数据将上传或保存到数据中,以便在没有互联网时上传 控制器将执行检查和处理,例如:
我的目标是让Activities只是收集数据并异步调用适当的方法(使用数据对象)。控制器将知道如何处理数据以便上载或保存在数据库中。
将这些方法放在应用程序的扩展中是不是一个坏主意?
有人提到,根据应用程序的大小,这是可行的,但可能有更好的解决方案。
答案 0 :(得分:1)
根据项目的大小,这是一个合适的想法。但是,在选择实际实施的方法之前,您还应该了解其他一些方法:
ContentProvider
为您的数据AccountAuthenticator
,然后使用SyncAdapter
同步到服务器。优点是良好的抽象,独立于活动和许多内置功能(例如:Android执行代码而不会对电池寿命造成很大影响)。然而,首先实现所有的东西是相当多的工作。如果您不想使用ContentProvider
,同样的技巧也适用于stub implementation,AccountAuthenticator
同样适用。Service
(可能是IntentService
)来满足您的上传需求。优点是服务具有独立的生命周期,因此与您的活动没有直接关系;如果服务已被系统杀死,则可以重新启动服务。还有更多工作,而不仅仅是使用一些静态方法。AsyncTask
s可以将结果直接发送到启动它的活动中。但不适合长时间运行的任务。这些是我脑海中浮现的,也可能是其他一些。随意添加/建议添加其他内容。