【发布时间】:2012-01-04 18:55:33
【问题描述】:
如何处理显示数据列表的片段和在后台更新数据的不同线程/类之间的引用。因此,我需要能够通过 Observer-inf 或类似的东西从片段外部强制更新。
目前我正在使用虚拟工厂类根据我的默认设置创建一个新的 SqlLiteDatabase 对象。
public static SQLiteDatabase initFor(Context context) {
db = context.openOrCreateDatabase(NAME, SQLiteDatabase.CREATE_IF_NECESSARY, null);
db.setLocale(Locale.getDefault());
db.setVersion(1);
db.setLockingEnabled(true);
return db; }
然后我从每个片段中调用它并设置适配器,这同样适用于数据插入器线程。要关闭数据库,我会覆盖我的活动的 onDestroy() 并调用:initFor(this).close(); .
这非常难看,并且在方向更改时失败。我正在考虑 SQLiteOpenHelper,但我不知道它对我有什么帮助。
【问题讨论】:
-
您还在为这个问题寻找解决方案吗?
-
不是真的,但最好的实践解决方案总是受到赞赏。无论如何,我最终让我的 Activites 扩展了一个抽象类 DatabaseActivity,该类处理对 SqlLiteDatabase 的引用。我更喜欢避免使用 Singeltons。
-
为了以后其他人的清楚,那么......当你的片段发生变化时,你是使用相同的查询和游标,还是重建它们?
-
当片段数据发生变化时,他们会通过观察者模式得到通知,然后他们会重新查询数据库游标并使用新的适配器更新视图。
-
我知道。 :) 我只是问你在做什么,所以我没有提供无用的答案。 (即不能解决这个问题)。
标签: android android-fragments android-lifecycle