dmSherazi
dmSherazi

Reputation: 3831

can i remove all data set by the previous install of app Android

Is it possible to delete any existing data set by a previous install of same app (databse tables and shared preferences etc) when the app is re-installed?

I have an app that stores some values in sqlite database, if the app is re-installed without prior properly uninstalling. I face problems from previous database entries etc.

Upvotes: 1

Views: 372

Answers (4)

S.Thiongane
S.Thiongane

Reputation: 6905

If uninstalling the app didn't do the stuff try this :

System Parameters -> Manage Applications -> Your Application -> Clear data

If you click on the button (Clear data) you will see a dialog which shows you what kind of data will be cleared.

Edit: If you want to do that programmatically, you can :

  1. Change database version in the super method of the constructor:

    super(context, DATABASE_NAME, null, NEW_DB_VERSION);

  2. Add a drop statement before creating tables.

    database.execSQL("DROP TABLE IF EXISTS your_table"); database.execSQL(" CREATE TABLE your_table ...");

  3. Proceed to a hard drop of the database:

    this.context.deleteDatabase(YOUR_DATABASE_NAME;

Upvotes: 3

krishna
krishna

Reputation: 4099

Its very Simple.

First Delete the table using drop query

sdb.execSQL("DROP TABLE IF EXISTS tablename");

and then again use the create table query

sdb.execSQL(" CREATE TABLE tablename(col1 TEXT PRIMARY KEY)");

or

delete the DB file using file explorer in path data->data->package->databases->dbname

Upvotes: 1

amalBit
amalBit

Reputation: 12181

Like Ankit Popli said, Using version is the right way to go:

  public class Database extends SQLiteOpenHelper{

    private static final int DATABASE_VERSION   = 1;
    public static final String DATABASE_NAME    = "YourDBName.db";

    @Override
    public void onCreate(SQLiteDatabase db) {

      db.execSQL(CREATE_TABLE);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      // ALl the deletion operation here.
      db.execSQL("DROP TABLE IF EXISTS "+Database.TABLE);       
      onCreate(db);

    }
}

AndroidSqlite will automatically call onUpgrade function when the version number is incremented. Do all the database deletion there.

Upvotes: 0

Ankit Popli
Ankit Popli

Reputation: 2837

update the Database version to greater value in the OpenHelper, it will automatically drop all the tables in database and recreate them.

For shared preferences.. you can clear them from the OpenHelper when onUpgrade is called.

Upvotes: 0

Related Questions