Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8396163
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T20:28:14+00:00 2026-06-09T20:28:14+00:00

I am using a contentprovider, and 3 variables on the shared prefs, I’m wondering

  • 0

I am using a contentprovider, and 3 variables on the shared prefs, I’m wondering how to best ‘log the user out’..

I would expect it to truncate the db, and clear/delete shared prefs variables..

Currently I am clearing the shared prefs, and deleting the database, then taking the user back to the login screen.

SharedPreferences app_preferences = PreferenceManager
        .getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = app_preferences.edit();

// wipe user specific data
editor.remove("authenticated_user_id");
editor.remove("api_key");
editor.remove("last_sync_updates");

editor.commit();

// TODO possibly truncate rather than delete
// the apps database
getApplicationContext().deleteDatabase(
        DatabaseConstants.DATABASE_NAME);

// send the user to the login screen
Intent logoutIntent = new Intent(this, SplashActivity.class);
startActivity(logoutIntent);

But it doesn’t seem to clear the database, and I get database access errors randomly on the first transaction after logging out..

How is this typically done?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T20:28:15+00:00Added an answer on June 9, 2026 at 8:28 pm

    The Google I/O 2012 application does something similar so you might want to check that out. When the user logs out, the following call to the ContentResolver is made:

    getContentResolver().delete(ScheduleContract.BASE_CONTENT_URI, null, null);
    

    This calls the ScheduleProvider‘s delete method:

    @Override
    public int delete(Uri uri, String selection, String[] selectionArgs) {
        if (uri == ScheduleContract.BASE_CONTENT_URI) {
            // Handle whole database deletes (e.g. when signing out)
            deleteDatabase();
            getContext().getContentResolver().notifyChange(uri, null, false);
            return 1;
        }
    
        /* ... */
    }
    

    where deleteDatabase() is the following private helper method:

    private void deleteDatabase() {
        mOpenHelper.close();
        Context context = getContext();
        context.deleteDatabase(ScheduleContract.DATABASE_NAME);
        mOpenHelper = new ScheduleDatabase(context);
    }
    

    You can see the exact sequence of events that occurs beginning in ScheduleProvider.java.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am using my custom ContentProvider to communicate with sqlite database. I would like
Currently I'm using ContentProvider in my application. Because of layers and no actual need
Apparently if using ILazyTree(TreePath)ContentProvider sorting and filtering is not supported by TreeViewers . So
I'm writing my own ContentProvider which will be synced to a web service using
All of the examples I've seen of using registerContentObserver() do so through a ContentProvider
I'm using this kind of pattern: public class FooProvider extends ContentProvider { private static
I'm using an IntentService to access different web service methods and update my ContentProvider
I am currently using the ContentProvider for contacts to retrieve the contacts from the
I am using a CursorAdapter and ContentProvider , and I want to use CursorLoader
I am using a ContentProvider for caching results from a web-service query. It is

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.