如何在android中卸载应用程序时清除db

时间:2012-10-29 08:55:39

标签: android database android-intent sms

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

5 个答案:

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