android - 集中式数据访问设计逻辑

标签 android service

我无法掌握为不同资源实现集中数据访问的正确方法。

我想要一个单独的类,将其命名为 DataAccess.class,它将从 SQLiteDatabaseHelper.classServerAccess.class 调用> 取决于我调用它的方法时什么是合适的。

我认为从服务扩展 DataAccess.class 是最好的方法,因此我可以将 ASyncTask 用于 ServerAccess.class。现在我有疑问。 DataAccess.class 需要可供我的应用程序中的大多数 Activity 访问,我希望它在应用程序访问时停止。

根据谷歌开发人员资源,听起来服务很好地用于后台正在进行的操作,但我不确定如何处理生命周期,因为我正在尝试合并。当我使用 DataAccess.class 方法时,我可以在内部调用服务 startService()stopService() 吗?每次访问该服务时都调用它是否有意义,还是应该只在应用程序启动和停止时调用一次?

感谢您的帮助,

最佳答案

我会推荐

1) 使用所有基于 AsyncTask 的解决方案,因为服务 - Activity 通信是有限的。 (当然除非你需要在后台运行一些东西)但是我很想听听对此的反驳,为什么要改用服务。

2) 不要像 DataAccess 那样只使用一个 Facade,而是让它特定于您的应用程序功能(即有点像 Android 中的系统服务)。

3) 您应该像 Android 一样使用工厂来获取您需要的 DataAccess 对象。这解决了您获取 DataAccess 对象的第二部分。遵循与获取和 Android 系统服务相同的模型。

4) 按照 Android 文档中的指示使用 Content Provider 并进行管理。

更新:我认为这些是好的解决方案的公理。不是全部。当我们深入考虑这个问题时,我会更新。

关于android - 集中式数据访问设计逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11642738/

相关文章:

java - 从列表中删除项目 - 转换

android - 如何在未捕获的异常后停止后在 android 中重新启动服务?

android - 指定的 child 已经有一个 parent

service - DDD : Blocking External Service Calls and Events

android - 无法启动我的服务

android - E/RecyclerView : No adapter attached; skipping layout

android - 如何在 eclipse 中配置 ADT 插件

iphone - 如何查看定位服务是否开启?

Android 服务未收到位置更新

Android:如何从预定的闹钟启动服务?