喂!我想使用单例类,因为如果我打开数据库的每个活动,我会得到“泄漏发现”(这是因为我打开数据库,即使它已经打开)。我创建了一个单例类,但我不知道应该如何使用它。
这是我的班级:
package com.ShoppingList;
import com.ShoppingList.databases.DbAdapter;
public class DbManager {
DbAdapter db;
// singleton
private static DbManager instance = null;
private DbManager() {
}
public static DbManager getInstance() {
if (instance == null)
instance = new DbManager();
return instance;
}
public void setinstance(DbAdapter db){
this.db=db;
}
public DbAdapter getinstancedb(){
return db;
}
}
在我提出的第一项活动中:
db = new DbAdapter(this);
db.open();
DbManager.getInstance().setinstance(db);
以及下一个活动:DbManager.getInstance()。getinstancedb();但是第二次活动让我关闭了。
任何人都可以帮我怎么用吗?感谢...
答案 0 :(得分:1)
您可以扩展Application
类并在其中创建DbAdapter
的实例。这样,它将由您的所有活动共享。
答案 1 :(得分:0)
因为db具有与第一个活动相同的上下文和生命周期。将您的方法公之于众,让他们完成返回所需结果所需的所有设置/拆卸。
答案 2 :(得分:0)
关于泄漏警告。您是否在onDestroy()
中关闭了数据库管理员连接?