전체 데이터베이스를 삭제하고 현재 작업을 마치고 LoginActivity로 리디렉션하는 로그 아웃 버튼을 만들려고합니다.데이터베이스 삭제 android sqlite
이것은 작동하지만 변경 사항을 적용하려면 응용 프로그램을 다시 시작해야합니다. 예를 들어 앱이 LoginActivity로 돌아 가면 사용자 데이터가 계속 표시됩니다. 앱을 다시 시작하면 로그인 양식이 표시됩니다. 어떻게해야합니까?
Globals.java
public void signOff(){
SharedPreferences preferences = instance.context.getSharedPreferences("globals", 0);
preferences.edit().remove("domain").commit();
DatabaseHelper dbHelper = new DatabaseHelper(instance.context);
dbHelper.deleteData();
finish();
Intent mainActivity = new Intent(instance.context, LoginActivity.class);
instance.context.startActivity(mainActivity);
}
DatabaseHelper.java
public final class DatabaseHelper extends SQLiteOpenHelper {
public SQLiteDatabase db;
public static DatabaseHelper instance ;
public static Context context;
public static final String DATABASE_NAME = "Oryx.db";
public static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// Init the singleton
if (instance == null){
instance = this;
instance.context = context;
instance.db = instance.getWritableDatabase();
}
}
public DatabaseHelper(Context context, String tableCreateQuery)
{
this(context);
instance.db.execSQL(tableCreateQuery);
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void deleteData(){
instance.context.deleteDatabase(DATABASE_NAME);
}
}
addFlags tho에 감사드립니다. 조금 도와 줬습니다. :) – Jordy