Ứng dụng của tôi sử dụng mẫu SyncAdapter
, giữ bằng chứng xác thực người dùng bằng cách sử dụng AccountManager
và ContentProvider
để lưu trữ dữ liệu trong một db.Xóa cơ sở dữ liệu khi Tài khoản bị xóa
Khi account
bị xóa, tôi có thể xóa db bằng cách sử dụng phương pháp được giải thích trong this question. Các db được loại bỏ bằng cách làm:
boolean deleted = mContext.deleteDatabase(DatabaseHelper.DATABASE_NAME);
Điều này làm việc tốt nhưng khi tôi đăng nhập lại mọi thứ vẫn còn đó. Có vẻ như ContentProvider
không biết rằng db đã bị xóa.
Trong this answer, inazaruk nói:
Bạn cần phải chắc chắn rằng bạn đã giết quá trình mà tổ chức ContentProvider có sử dụng tập tin cơ sở dữ liệu cụ thể. Và chỉ hơn xóa nó.
Giết quá trình xóa một db không cảm thấy đúng.
Có cách nào tốt hơn để làm?
Tại sao xóa các tập tin cơ sở dữ liệu? Không phải là loại bỏ các dữ liệu từ cơ sở dữ liệu đủ? – zapl
@zapl: Đúng. Tôi có thể làm một cái gì đó như 'xóa khỏi bảng;' – Macarse