为什么每次重新启动应用程序时都会创建数据库?

问题描述 投票:-1回答:1

我有一个在应用程序启动时创建的数据库。它旨在下载文件并从该文件创建数据库。问题是每次重新打开应用程序时它都会下载文件并创建数据库。 MainActivity使用此代码段检查数据库是否存在

dbHelper = new DatabaseHelper(this);
    if(!dbHelper.checkDataBase()) {
        android.os.Debug.waitForDebugger();
        dlPortTask = new DownloadTask(MainActivity.this);
        dlPortTask.execute();
    }

所以问题是当我重新打开主要活动时,数据库会重新创建。因为每次活动主要打开时我都会创建一个新实例。然后我检查数据库是否存在。如何先检查数据库,然后如果不存在则创建它。如何获取或检查是否存在现有数据库的实例。我的数据库构造函数和checkDatabase方法

public DatabaseHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
        DB_PATH = context.getDatabasePath(DB_NAME).getPath();
        this.context = context;
    }
public boolean checkDataBase() {
        File DbFile = new File(DB_PATH + DB_NAME);
        String databasePath = context.getDatabasePath(DB_NAME).getPath();
        return DbFile.exists();
    }

我再次调用checkDatabase(),但只能在mainactivity中实例化数据库之后。如何在创建新实例之前检查。我想这更像是一个软件设计原则的问题......任何帮助

android sqlite android-database
1个回答
0
投票

这是检查数据库存在的正确代码

if(!getDatabasePath(DatabaseHelper.DB_NAME).exists()) {
    //then create databse
  }

其中DB_NAME是数据库的名称,DatabaseHelper是数据库类

© www.soinside.com 2019 - 2024. All rights reserved.