haizeiwangjoin 2015-05-18 13:41 采纳率: 0%
浏览 2764

关于不同的activity获得SQLite对象

我创建了一个SQLite以及操作这个数据库的类,代码如下
这是数据库的类
public class account extends SQLiteOpenHelper {
private static final int VERSION = 1;// 定义数据库版本号
private static final String DBNAME = "account.db";// 定义数据库名
public account(Context context){// 定义构造函数

    super(context, DBNAME, null, VERSION);// 重写基类的构造函数
}

@Override
public void onCreate(SQLiteDatabase db){// 创建数据库
    db.execSQL("create table tb_pname(id INTEGER PRIMARY KEY AUTOINCREMENT,packageName varchar(20))");// 创建表,表的一列为packageName,一列为主键id,id的值可递增
    //db.execSQL("create table tb_pwd (password varchar(20))");//创建密码表
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)// 覆写基类的onUpgrade方法,以便数据库版本更新
{

}

}
这是操作数据库的类
public class PwdDAO {
private account helper;// 创建DBOpenHelper对象
private SQLiteDatabase db;// 创建SQLiteDatabase对象
private static final String USER_TABLE="tb_pname";
public PwdDAO(Context context)// 定义构造函数
{
helper = new account(context);// 初始化account对象
db=helper.getWritableDatabase();//获得操作数据库的对象
}
public account getHelper(){
return helper;
}
我在mainActivity中创建了数据库的实例,并获得操作对象的代码如下
pwdDAO=new PwdDAO(this);//首先创建数据库
helper=pwdDAO.getHelper();
SQLiteDatabase db=helper.getWritableDatabase();
那么问题来了,我想要在另一个 activity中也获得这个数据库的操作对象,应该怎样做,如果再执行如同上面的语句,岂不是又创建了一个数据库,这个问题应该怎样解决
求解,各位大神

  • 写回答

2条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2015-05-18 14:15
    关注

    你应该用单例模式,内部有一个静态的变量,从始至终就这一个

    评论

报告相同问题?

悬赏问题

  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题