import android.content.Context;
public class dbutils {
private dbutils(){
}
private static DBHelper dbHelper ;
public static synchronized DBHelper getDBHelper(Context context){
if(dbHelper == null){
dbHelper = new DBHelper(context, ApplicationMetaData.DATABASE_NAME, null, ApplicationMetaData.DATABASE_VERSION);
}
return dbHelper;
}
public static synchronized void closeDBHelper(){
if(dbHelper!=null )
dbHelper.close();
dbHelper = null;
}
@Override
protected Object clone() throws CloneNotSupportedException {
// Todo Auto-generated method stub
throw new CloneNotSupportedException();
}
}
我想知道我应该在哪里关闭这个单例对象我不能在onTerminate()方法中继,因为它不会被调用.我想在用户退出我的应用时关闭它?任何解决方案
解决方法:
因为Android中没有这样的“app is closed”事件.您必须处理每个Activity的数据库连接,这样您才能知道Activity何时被销毁,或者您必须以某种方式关注哪个对象使用数据库帮助程序,并且只有当其他对象不再使用帮助程序时才关闭帮助程序.
如果您继续使用单例解决方案,请注意将Application上下文传递给getDBHelper()方法而不是Activity上下文,因为这可能会导致内存泄漏.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。