хочу удалить файл базы данных в моем приложении . . пробовал с помощью программы, которая не работала

#android-sqlite

#android-sqlite

Вопрос:

Я пытаюсь удалить таблицу базы данных программно или вручную.
Я создал свое собственное приложение, которое находится в стадии разработки.
Мое приложение называется SWULJ CT Conductor
, но я не нахожу его в папке android / data / data с любым форматом имени com.xxx.xxx

код:

 public class DatabaseHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME = "BusDetails.db";
    public static final String TABLE_NAME = "bus_details_table";
    public static final String COL_1 = "ID";
    public static final String COL_2 = "NUMBER";
    public static final String COL_3 = "ROUTE";
    public static final String COL_4 = "CITY";
    public static final String COL_5 = "STATUS";

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String myPath = TABLE_NAME   DATABASE_NAME;
        SQLiteDatabase.deleteDatabase(new File(myPath));
        db.execSQL("create table "   TABLE_NAME  " (ID INTEGER PRIMARY KEY AUTOINCREMENT,NUMBER TEXT,ROUTE TEXT,CITY TEXT,STATUS INTEGER)");
    }
 

Это частичный код для класса databasehelper
Он вызывается из действия, подобного этому:

 public class GenerateQrCodeActivity extends AppCompatActivity {
    ImageButton imgButtonGenerateBulk;
    ImageButton imgButtonGenerateSingle;
    DatabaseHelper myDb;
    EditText edit;
    boolean flag = false;
    String data_bus_number=null;
    int ID_bus_number = -1;
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_generate_qr_code);
        myDb = new DatabaseHelper(this);
        imgButtonGenerateBulk =(ImageButton)findViewById(R.id.imageButtonGenerateBulk);
        imgButtonGenerateSingle =(ImageButton)findViewById(R.id.imageButtonGenerateSingle);
        edit =  (EditText) findViewById(R.id.bus_number);
.....
.....
 

Я разместил строки

  String myPath = TABLE_NAME   DATABASE_NAME;
 SQLiteDatabase.deleteDatabase(new File(myPath));
 

Но появляются старые данные из базы данных. Он не удаляется. Почему? как это исправить?

Ответ №1:

сделано с помощью функции->

 public void deleteDatabase() {
        // Are you sure? (y/n)
        final SQLiteDatabase db = this.getWritableDatabase();
        final File dbFile = new File(db.getPath());
        db.close();
        Toast.makeText(cntxt, "db deleted", Toast.LENGTH_SHORT).show();
        edit.setText("db deleted");
        if (dbFile.exists()) {
            SQLiteDatabase.deleteDatabase(dbFile);

        }
        //mOpenHelper = new DatabaseHelper(getContext());
    }