5

我使用数据库来存储消息,如果我卸载我的应用程序并再次重新安装同一个应用程序,数据库保持不变,但我想清除我的数据库,如何解决这个问题?

4

5 回答 5

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);

您可以在此处查看有关此主题的更多信息在应用程序卸载之前收听广播

我希望这对你有用。

于 2012-10-29T09:06:42.887 回答
0

所有数据,包括存储在内部存储中的数据库、首选项、本地数据文件在卸载时都会被删除。它们只会在应用程序更新时保持不变。

于 2012-10-29T09:39:41.220 回答
0

我认为这不是普通情况,因为当您卸载应用程序时 - 所有数据库都会自动删除。但如果它没有发生 - 尝试清除菜单中的数据 - 管理应用程序 - 您的应用程序 - 卸载前清除数据。

于 2012-10-29T09:42:49.423 回答
0

就我而言,我只是忘记在 DatabaseHelper 类的 onUpgrade 方法中添加以下行

onCreate(sqLiteDatabase);
于 2017-08-10T06:39:45.720 回答
-1

下面的代码可以帮助您从应用程序中删除数据库

/**
     * 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();
    }

在处理数据库处理方法的类中创建一种方法。您在哪里创建其他方法,如添加、更新等。

于 2012-10-29T08:58:30.147 回答