我使用数据库存储消息,如果我卸载我的应用程序并再次重新安装相同的应用程序,数据库仍然相同,但我想清除我的数据库,如何解决这个问题?
答案 0 :(得分:4)
要收听卸载事件,您必须实现收到的广播,例如:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".UninstallIntentActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.DELETE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="package" />
</intent-filter>
</activity>
</application>
然后在您的UninstallIntentActivity中,您必须使用下一行来删除您的数据库:
context.deleteDatabase(DATABASE_NAME);
您可以在此处Listen Broadcast Before application uninstall
查看有关此主题的更多信息我希望这适合你。
答案 1 :(得分:0)
下面的代码可以帮助您从应用程序中删除数据库
/**
* Re crate database
* Delete all tables and create them again
* */
public void resetTables(){
SQLiteDatabase db = this.getWritableDatabase();
// Delete All Rows
db.delete(TABLE_NAME, null, null);
db.close();
}
在类中创建一个处理数据库处理方法的方法。你可以在其他地方添加,更新等等。
答案 2 :(得分:0)
存储在内部存储中的所有数据(包括数据库,首选项,本地数据文件)都会在卸载时删除。它们只会在应用程序更新时保持不变。
答案 3 :(得分:0)
我认为这不是普通情况,因为当您卸载应用程序时 - 所有数据库都会自动删除。但如果没有发生 - 尝试清除菜单中的数据 - 管理应用程序 - 您的应用程序 - 卸载前清除数据。
答案 4 :(得分:0)
在我的情况下,我忘了在DatabaseHelper类的onUpgrade方法中添加以下行
onCreate(sqLiteDatabase);