Android:删除数据库路径的硬编码
在我的SQLite数据库助手类应用程序中,构造函数的代码如下:Android:删除数据库路径的硬编码,android,database,sqlite,android-sqlite,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 =
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/”;改为使用Context.getFilesDir().getPath()
所以我试着:
DB_PATH = "/data/data/" + context.getPackageName() + "/databases/";
但我也得到了同样的警告。我现在该怎么办。你可以做一件事。就像不要硬核一样。尝试以下方式:
DB_PATH = myContext.getDatabasePath(DATABASE_NAME).getPath();
这将删除您的警告。另一种使用方法是
File datbasefile=myContext.getDatabasePath("your database name");
String name = datbasefile.getPath() ;
您真的不需要提供数据库的路径。
让Android决定它想把它放在哪里。
您只需提供数据库名称:
private final static String DB_NAME = "your_db_name.db";
试试这个:
private final static String DATABASE_NAME = "/databases/";
DB_PATH = context.getFilesDir().getPath() + context.getPackageName() + DATABASE_NAME;