我无法掌握为不同资源实施集中数据访问的正确方法。
我想要一个单独的课程,称之为DataAccess.class
,我会调用SQLiteDatabaseHelper.class
和ServerAccess.class
,具体取决于我调用它时的方法。
我认为从服务扩展DataAccess.class
是最好的方法,所以我可以使用ASyncTask来ServerAccess.class
。现在我有疑虑。我的应用程序中的大多数活动都需要访问DataAccess.class
,我希望它在应用程序执行时停止。
根据谷歌开发者资源,它听起来像一个服务很好地用于后台正在进行的操作但我不确定如何处理生命周期给定我试图纳入的范围。使用startService()
方法时,我可以在内部拨打服务stopService()
和DataAccess.class
吗?每次访问服务时调用它是否有意义,或者只应在应用程序的开始和结束时调用一次?
感谢您的帮助,
答案 0 :(得分:1)
我会推荐
1)使用所有基于AsyncTask的解决方案,因为服务 - 活动通信是有限的。 (当然除非你需要在后台运行一些东西)但我很想听到对此的反驳,为什么要使用服务呢。
2)不要只使用一个类似于DataAccess的Facade,而是使其特定于您的应用程序功能(即类似于Android中的系统服务)。
3)你应该像Android一样使用工厂来获取你需要的DataAcccess对象。这解决了获取DataAccess对象的第二部分。遵循与获取和Android系统服务相同的模型。
4)使用指示和管理的内容提供商,如Android文档中所示。
更新:我认为这些是一个很好的解决方案的公理。不是全部。我会在深入考虑时对此进行更新。