如何处理显示数据列表的碎片与后台更新数据的不同线程/类之间的引用。因此,我需要能够通过Observer-inf或类似的东西强制从Fragments外部进行更新。
目前我正在使用虚拟工厂类创建一个新的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,但我不知道它对我有什么帮助。
答案 0 :(得分:0)
您应该在另一个线程(在服务中)访问您的数据库,然后与一个类(可能是您的帮助程序)进行对话,然后通过在扩展Application的类中初始化的单例来访问此帮助程序类。您可以通过调用
从任何片段中获取Application类 ((YourApplication) context.getApplicationContext()).getGetDatabaseHelper();