Android SQLItes onConfigure方法的奇怪行为
我试图在数据库表中实现一个外键,为此我需要在设置PRAGMA的地方调用onConfigure。然而,这个方法的实现给了我奇怪的行为当我使用@Override注释时,eclipse intellisense会要求我删除它,当我删除它时,我会收到一组不同的警告此方法不会覆盖当前构建目标的任何内容,但会在API级别16(当前目标为11)中进行 以下是我针对特定问题代码的代码片段:Android SQLItes onConfigure方法的奇怪行为,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我试图在数据库表中实现一个外键,为此我需要在设置PRAGMA的地方调用onConfigure。然而,这个方法的实现给了我奇怪的行为当我使用@Override注释时,eclipse intellisense会要求我删除它,当我删除它时,我会收到一组不同的警告此方法不会覆盖当前构建目标的任何内容,但会在API级别16(当前目标为11)中进行 以下是我针对特定问题代码的代码片段: public static class DatabaseHelper extends SQLiteOpenHelper {
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");
}
}
这是我的清单SDK声明:
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
要阻止android lint引发错误,请在配置中注释
在DatabaseOpenHelper
中重写为JellyBean或更高版本。更老的
android版本将继续使用已经检查过的旧机制
在onOpen覆盖中
您需要在类中添加@TargetAPI
,如下所示:
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onConfigure(SQLiteDatabase db) {
super.onConfigure(db); }
检查尝试清理您的项目。如果我在方法声明之前添加@suppressint(“Override”),则不起作用。您在哪个方法中得到@Override error?您是否自己编写了这些方法或使用了intellisense?所有其他方法都是由intellisense编写的,尽管对于这种方法,问题代码随问题一起出现。对于onConfigure
方法,您会遇到@Overrided错误?当目标API较低时会发生什么?它还会发出警告吗?或者,对于旧版本,编译器会跳过它吗?这样我的外键约束就失败了,这可能是因为您使用的是JAVA 5编译器。这很可能是因为您正在Java1.5和Java1.6之间切换。在1.5中不能用@Override标记接口实现,但在1.6中可以。