Android, как справиться с удалением базы данных? - PullRequest
0 голосов
/ 02 августа 2011

sqlite моего Android-приложения синхронизируется с базой данных внутреннего сервера. Я хочу, чтобы при удалении базы данных по какой-либо причине (например, при удалении приложения) обновлялся мой сервер, чтобы он удалял строки из своей таблицы. я ищу какой-то обработчик, но я не могу найти ничего похожего на onDatabaseDelete ().

private static class DatabaseHelper extends SQLiteOpenHelper {

    DatabaseHelper(Context context) {
        super(context, DBAdapter.DATABASE_NAME, null, DBAdapter.DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}

Я думаю, что в качестве обходного пути я мог бы сделать это, когда приложение удалено, но это менее "элегантно".

Может кто-нибудь сказать мне, если есть способ сделать это элегантным способом (из обработчика БД, а не когда приложение удалено)?

EDIT: Можно ли поставить обработчик на удаление приложения? Можно ли выполнить несколько действий до удаления приложения?

Ответы [ 2 ]

0 голосов
/ 02 августа 2011

Файл базы данных приложения находится в / data / app_package / database.При удалении приложения удаляются все его личные данные (/ data / app_package).Вы не можете получать уведомления, когда приложение удалено или когда его личные данные удалены.Простой обходной путь - каждый раз, когда приложение начинает отправлять сообщение keepAlive на сервер, чтобы указать, что оно все еще живо.На стороне сервера вы удаляете записи, для которых вы не получали сообщений keepAlive в течение более периода (это зависит от ваших данных).Вы столкнетесь с двумя проблемами -

  1. Когда приложение будет удалено, его данные будут удалены на сервере через один период времени (это может привести к перегрузке вашего сервера)
  2. Для приложения, которое не запускается в течение периода времени - данные на сервере будут удалены (если вы не запустили в течение периода времени, которое выможно считать, что он удален)
0 голосов
/ 02 августа 2011

База данных Android на самом деле является файлом.

Обнаружение удаления базы данных в конечном итоге Обнаружение удаления файла .

Это невозможно сделатьхотя в элегантном было бы неплохо иметь onFileDelete()

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