我无法掌握为不同资源实现集中数据访问的正确方法。
我想要一个单独的类,将其命名为 DataAccess.class
,它将从 SQLiteDatabaseHelper.class
和 ServerAccess.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/