Tôi sẽ cố gắng trả lời tất cả các câu hỏi của bạn bằng cách giải quyết câu hỏi lớn hơn: Làm cách nào tôi có thể đồng bộ hóa dữ liệu giữa máy chủ web và ứng dụng Android?
Đồng bộ hóa dữ liệu giữa máy chủ web của bạn và ứng dụng Android yêu cầu một vài thành phần khác nhau trên thiết bị Android của bạn.
Lưu trữ liên tục:
Đây là cách điện thoại của bạn thực sự lưu trữ dữ liệu mà nó nhận được từ máy chủ web. Một phương pháp khả thi để thực hiện điều này là viết ContentProvider tùy chỉnh của riêng bạn được hỗ trợ bởi cơ sở dữ liệu Sqlite. Một hướng dẫn tốt cho một nhà cung cấp nội dung có thể được tìm thấy ở đây: http://thinkandroid.wordpress.com/2010/01/13/wr-your-own-contentprovider/
Một ContentProvider định nghĩa một giao diện phù hợp để tương tác với dữ liệu lưu trữ của bạn. Nó cũng có thể cho phép các ứng dụng khác tương tác với dữ liệu của bạn nếu bạn muốn. Đằng sau ContentProvider của bạn có thể là cơ sở dữ liệu Sqlite, Cache hoặc bất kỳ cơ chế lưu trữ tùy ý nào.
Mặc dù tôi chắc chắn sẽ khuyên bạn nên sử dụng ContentProvider với cơ sở dữ liệu Sqlite, bạn có thể sử dụng bất kỳ cơ chế lưu trữ dựa trên java nào bạn muốn.
Định dạng trao đổi dữ liệu:
Đây là định dạng bạn sử dụng để gửi dữ liệu giữa máy chủ web và ứng dụng Android của bạn. Hai định dạng phổ biến nhất hiện nay là XML và JSON. Khi chọn định dạng của bạn, bạn nên suy nghĩ về loại thư viện tuần tự hóa nào có sẵn. Tôi biết rằng có một thư viện tuyệt vời để tuần tự hóa json được gọi là gson: https://github.com/google/gson , mặc dù tôi chắc chắn các thư viện tương tự tồn tại cho XML.
Dịch vụ đồng bộ hóa
Bạn sẽ muốn một số loại tác vụ không đồng bộ có thể nhận dữ liệu mới từ máy chủ của bạn và làm mới nội dung di động để phản ánh nội dung của máy chủ. Bạn cũng sẽ muốn thông báo cho máy chủ bất cứ khi nào bạn thực hiện thay đổi cục bộ đối với nội dung và muốn phản ánh những thay đổi đó. Android cung cấp mẫu SyncAd CHƯƠNG như một cách để dễ dàng giải quyết mẫu này. Bạn sẽ cần phải đăng ký tài khoản người dùng và sau đó Android sẽ thực hiện nhiều phép thuật cho bạn và cho phép bạn tự động đồng bộ hóa. Đây là một hướng dẫn tốt: http://www.c99.org/2010/01/23/writer-an-android-sync-provider-part-1/
Về cách bạn xác định xem các bản ghi có giống nhau hay không, thông thường bạn sẽ tạo các mục với một id duy nhất mà bạn lưu trữ cả trên thiết bị Android và máy chủ. Bạn có thể sử dụng điều đó để đảm bảo rằng bạn đang tham khảo cùng một tài liệu tham khảo. Hơn nữa, bạn có thể lưu trữ các thuộc tính cột như "update_at" để đảm bảo rằng bạn luôn nhận được dữ liệu mới nhất hoặc bạn không vô tình ghi lên dữ liệu mới được ghi.