Android:删除数据库路径的硬编码

时间:2014-03-20 09:04:08

标签: android database sqlite android-sqlite

在我的SQLite数据库助手类的应用程序中,构造函数的代码如下:

public DataBaseHelper(Context context) {    
    super(context, DATABASE_NAME, null ,DATABASE_VERSION);
    this.myContext = context;
    //The Android's default system path of your application database.
    DB_PATH =  "/data/data/myPackage/databases/";
}

我收到警告的地方是:

不要硬编码" / data /&#34 ;;使用Context.getFilesDir()。getPath()代替

所以我试过了:

DB_PATH = "/data/data/" + context.getPackageName() + "/databases/"; 

但是我也得到同样的警告。我现在该怎么办。

4 个答案:

答案 0 :(得分:3)

你可以做一件事。由于不硬核心。试试这个:

DB_PATH =  myContext.getDatabasePath(DATABASE_NAME).getPath();

这将删除您的警告。

答案 1 :(得分:3)

另一种使用方式是。

File datbasefile=myContext.getDatabasePath("your database name");
String name = datbasefile.getPath() ;

答案 2 :(得分:2)

你真的不需要提供你的数据库的路径 让Android决定它想放在哪里 您只需要提供数据库名称:

private final static String DB_NAME = "your_db_name.db";

答案 3 :(得分:2)

试试这个:

private final static String DATABASE_NAME = "/databases/";

DB_PATH = context.getFilesDir().getPath() + context.getPackageName() + DATABASE_NAME;