即使我清除数据并从6.0.1设备删除应用程序仍然存在Sqlite数据库

时间:2016-07-21 17:57:00

标签: android database sqlite android-6.0-marshmallow

我的数据库实现是这样的

public class DbHelper extends SQLiteOpenHelper {

    private static DbHelper mDbHelper;
    private Context context;

    public static synchronized DbHelper getInstance(Context context) {
        if (mDbHelper == null) {
            checkDataBase(context);
            mDbHelper = new DbHelper(context.getApplicationContext());
            Log.d(log, context.getDatabasePath(DB_NAME).getPath());
        }

        return mDbHelper;
    }

    public DbHelper(Context context) {
        super(context, DB_NAME, null, version);
        this.context = context;
    }
}

我在excel文件中放置了onCreate方法的一些初始数据。清除数据并删除应用程序后,当我从Android Studio安装应用程序时,我的行为就像有一个数据库,从不调用onCreate方法。它还会从旧的excel文件中提取旧数据。清除数据时必须删除数据库。

我在Logcat中记录路径,它说:/data/user/0/com.mypackage.app/databases/dbname

我认为在我的设备中有一个缓存使数据库处于活动状态。它仅出现在我的6.0.1设备上。它在5.1.1

上工作正常

有关删除数据库的建议吗?

1 个答案:

答案 0 :(得分:4)

我也有同样的问题,这让我困扰了整整一天。

卸载应用程序然后重新启动手机。这解决了Marshmellow的问题。