Skip to content Skip to sidebar Skip to footer

Contentprovider Not Called Oncreate After Deleting Database

I have created ContentProvider which creates one Database on application launching. Now In that application, I am doing process of deleting database when user logout from app. Afte

Solution 1:

I found solution as,

First of all I referred Refresh/Reload database reference in custom ContentProvider after restore but not satisfied with answer because its just for closing database.

So I have created my answer as below:

DBHelper.java

/**
 * Delete database
 */publicstaticvoidreCreateDatabase(Context mContext) {
    ContentResolverresolver= mContext.getContentResolver();
    ContentProviderClientclient= resolver.acquireContentProviderClient(KOOPSContentProvider.AUTHORITY);

    assert client != null;
    KOOPSContentProviderprovider= (KOOPSContentProvider) client.getLocalContentProvider();

    assert provider != null;
    provider.resetDatabase();

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
        client.close();
    else
        client.release();

    LOGD("Database Deleted...");
}

publicvoidremoveDatabase(Context mContext) {
    mContext.deleteDatabase(DATABASE_NAME);
    LOGD("Database Deleted...");
}

KOOPSContentProvider.java

publicvoidresetDatabase() {
    if(dbHelper != null) {
        dbHelper.removeDatabase(getContext());
        dbHelper = new DbHelper(getContext());
    } else {
        LOGD("Database NULL");
    }
}

USE As:

DbHelper.reCreateDatabase(mContext);

Thank you :) :)

Post a Comment for "Contentprovider Not Called Oncreate After Deleting Database"