gpt4 book ai didi

android - 使用单例作为选定数据库值的全局缓存

转载 作者:搜寻专家 更新时间:2023-10-30 20:30:57 24 4
gpt4 key购买 nike

我喜欢使用单例作为某些数据库值的全局可访问缓存。这是我对带有示例变量 gi1 和 gDBAdapter 的单例的定义:

public class GlobalVars {
private Integer gi1;
private WebiDBAdapter gDBAdapter;

private static GlobalVars instance = null;
protected GlobalVars() {
// Exists only to defeat instantiation.
}
public static GlobalVars getInstance() {
if(instance == null) {
instance = new GlobalVars();
}

// now get the current data from the DB,

WebiDBAdapter myDBAdapter = new WebiDBAdapter(this); // <- cannot use this in static context

gDBAdapter = myDBAdapter; // <- cannot use this in static context
myDBAdapter.open();

Cursor cursor = myDBAdapter.fetchMainEntry();
startManagingCursor(cursor); // <- the method startManagingCursor is undefined for the type GlobalVars
// if there is no DB yet, lets just create one with default data
if (cursor.getCount() == 0) {
cursor.close();
createData(); // <- the method createData is undefined for the type GlobalVars
cursor = myDBAdapter.fetchMainEntry();
startManagingCursor(cursor);// <- the method startManagingCursor is undefined for the type GlobalVars
}

gi1 = cursor.getInt(cursor // <- Cannot make a static reference to the non-static field gi1
.getColumnIndexOrThrow(WebiDBAdapter.KEY1));
if (gi1 == null) gi1 = 0;

cursor.close();

return instance;
}

但所有对实例变量的引用都无法识别。

所有 // <-条目显示我得到的错误

我想有些基础知识我没有在这里做。

创建单例并使用数据库中的值初始化其值的正确方法是什么?

感谢您的帮助!

最佳答案

使用 Application类,

静态函数中也没有this这样的东西

关于android - 使用单例作为选定数据库值的全局缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8019036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com