Moja aplikacja używa wzorca SyncAdapter
, przechowującego poświadczenia użytkownika przy użyciu AccountManager
i ContentProvider
do przechowywania danych w bazie danych.Usuwanie bazy danych po usunięciu Konta
Po usunięciu account
mogę usunąć bazę danych za pomocą metody opisanej w artykule this question Baza danych zostaje usunięta przez:
boolean deleted = mContext.deleteDatabase(DatabaseHelper.DATABASE_NAME);
To działa dobrze, ale kiedy loguję się ponownie, wszystko jest nadal dostępne. Wydaje się, że ContentProvider
nie wie, że db został usunięty.
W this answer, inazaruk mówi:
Musisz upewnić się zabić proces, który obsługuje ContentProvider który używa tego konkretnego pliku bazy danych. I tylko usuń go, niż .
Zabicie procesu czyszczenia db nie jest właściwe.
Czy jest coś lepszego?
Dlaczego usunąć plik bazy danych? Czy usunięcie danych z bazy danych nie jest wystarczające? – zapl
@zapl: Tak. Mógłbym zrobić coś w stylu 'delete from table;' – Macarse