我正在尝试在我的数据库表中实现一个外键,因为我需要在我设置PRAGMA的地方调用onConfigure。但是这种方法的实现给了我奇怪的行为。 当我使用@Override注释时,eclipse intellisense要求我将其删除,当我删除它时,我得到一组不同的警告此方法不会覆盖当前构建目标的任何内容,但是在API级别16(当前目标是11)
以下是我的特定问题代码的代码段:
public static class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE0);
db.execSQL(unique);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void onConfigure(SQLiteDatabase db){
System.out.println("Hello from on Configure");
db.execSQL("PRAGMA foreign_keys=ON");
}
}
这是我的Manifest SDK声明:
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
答案 0 :(得分:2)
要阻止android lint引发错误,请注释onConfigure
在DatabaseOpenHelper
中覆盖为 JellyBean或更高。年长
android版本将继续使用已经检查过的旧机制
用于onOpen覆盖。
您需要在班级中添加@TargetAPI
,如下所示:
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onConfigure(SQLiteDatabase db) {
super.onConfigure(db); }