Vì vậy, câu hỏi của tôi được đặt lại là khi bạn chuyển đến Cài đặt -> Tài khoản & Đồng bộ hóa và chọn tài khoản được tạo mà SyncAdapter
đang đồng bộ hóa với máy chủ đám mây và chọn xóa tài khoản, điều gì xảy ra với điều kiện là SyncAdapter
của bạn ? Có một hộp thoại hiển thị yêu cầu bạn xác nhận và dữ liệu trên điện thoại được liên kết với tài khoản đó sẽ bị xóa. Tôi không thể dễ dàng tin rằng khuôn khổ có thể tự động xóa dữ liệu của tôi SyncAdapter
đã được lưu trữ trong cơ sở dữ liệu cục bộ, nhưng dường như ngụ ý rằng việc xóa tài khoản sẽ (và tôi đồng ý rằng) nên xóa dữ liệu đó. Có một bổ sung cho SyncAdapter
của tôi sẽ phân phối như là gọi lại cho việc loại bỏ tài khoản để xử lý xóa tất cả các dữ liệu thích hợp từ cơ sở dữ liệu địa phương? Có lẽ nó phải được thực hiện thông qua các AccountManager
thay vào đó; AccountManager
của tôi được thông báo khi tài khoản bị xóa và từ đó tôi có thể kích hoạt xóa dữ liệu mà không cần SyncAdapter
.SyncAdapter có được thông báo khi AccountManager xóa tài khoản không?
EDIT: Trên ghi chú liên quan, trình quản lý đồng bộ có gọi số SyncAdapter
cho mỗi tài khoản mà nó đồng bộ hóa khi thêm tài khoản mới không? Tôi thấy onPerformSync(...)
đang được thực hiện cho các tài khoản đã thêm trước đó cùng với tài khoản vừa thêm khi tôi thêm tài khoản và muốn dừng lại.
Bạn có thể giải thích một chút về câu trả lời của mình không? Những gì 'onCreate' là bạn đang nói về? – akirk
... Trình ContentProvider, đọc dòng đầu tiên gần hơn.Tôi không biết những gì bạn muốn "phức tạp" d –
Có thể loại bỏ OnAccountsUpdateListener tại điểm thích hợp trong vòng đời ContentProviders không? – fr1550n