android代码关闭数据库,android – 我应该如何正确打开和关闭我的数据库

我有一个应用程序,它将一些数据存储在SQLite数据库中.此外,我在我的应用程序中进行了大量查询和重新查询.我在其中有大约15个活动.并且所有人都使用数据库来查询数据.

但我正在做的是在每个活动中打开我的数据库并在每个活动的onDestroy {…}中关闭它.

问题是onDestroy {…}可能永远不会被调用,有时我的应用程序会保持很长一段时间,并且我会从一个活动切换到另一个开放多次我的数据库.

有时我会得到像数据库这样的错误太多次打开而且从未关闭过.

在我从中获取数据并关闭它后,我会尝试完全关闭我的数据库…转到我的下一个活动并重新打开等等…..

但问题是,在某些活动中,我从其他活动中回来……关闭我的数据库并回到那个活动会产生一个很大的力量关闭.

我想做的是在我的应用程序开始时打开我的数据库并在结束时关闭它,但我面临两个问题:

1.

我应该让我的SQLiteOpenHelper类成为一个单独的吗?…获取它的一个实例…在我的第一个活动中打开它然后在我的下面的活动中获取我已经打开的数据库的实例/ ???

2.我的应用程序结束了????我怎么知道应用程序的结束位置以及关闭数据库的位置.

编辑:

public class DBAdapter extends SQLiteOpenHelper {

public DBAdapter(Context context) {

super(context, DATABASE_NAME, null, 1);

this.myContext = context;

}

public void openDataBase() throws SQLException {

String myPath = DATABASE_PATH + DATABASE_NAME;

db = SQLiteDatabase.openDatabase(myPath, null,

SQLiteDatabase.OPEN_READWRITE);

}

}

这是我班上管理我的DB的一段代码.为了使这个单例,我应该使用一个构造函数:

private DBAdapter()

{

//nothing in here

}

但这对于SQLiteOpenHelper来说是未定义的

编辑决赛:

这就是我根据zirael的建议做到的:

package com.Server_1;

import android.app.Application;

public class MyApplication extends Application{

private static DBAdapter db;

public void onCreate()

{

db=new DBAdapter(getApplicationContext());

db.createDatabase();

db.openDataBase();

}

public static DBAdapter getDatabaseAdapter()

{

return db;

}

}

在我需要数据库连接的每个活动中,我都这样做:

MyApplication myApplication = (MyApplication) this.getApplication();

DBAdapter db= myApplication.getDatabaseAdapter();

最后我的清单看起来像:

android:label="@string/app_name"

android:name=".MyApplication"

android:debuggable="true">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值