Tôi đã tìm kiếm kiến trúc ứng dụng android hoàn hảo và đọc một vài bài đăng trên blog tuyệt vời về chủ đề này.Xe buýt sự kiện và vòng đời của các thành phần ui android
1) http://www.mdswanson.com/blog/2014/04/07/durable-android-rest-clients.html
2) http://birbit.com/a-recipe-for-writing-responsive-rest-clients-on-android/
Cả hai bài viết mô tả làm thế nào để sử dụng xe buýt kiện để liên lạc giữa các thành phần android (hoạt động, mảnh vỡ, dịch vụ).
Một, nhưng chủ đề rất quan trọng không được đề cập đến. Cách xử lý các sự kiện đã được đăng lên các thành phần giao diện người dùng khi chúng bị tạm dừng.
Ví dụ: dịch vụ đang đăng sự kiện khi hoàn thành tải dữ liệu xuống hoạt động. Và tại thời điểm này, hoạt động bị tạm dừng. Vì event bus không được đăng ký trong onPause(), chúng ta sẽ mất hoàn toàn sự kiện này.
EvenBus từ greendao cung cấp các chất dính. Nhưng chúng có thể gây rò rỉ bộ nhớ nếu không bị loại bỏ.
Otto từ hình vuông giới thiệu mẫu "Nhà sản xuất", có thể được sử dụng thay cho các sự kiện dính.
Giải pháp đầu tiên có thể gây rò rỉ bộ nhớ nếu sự kiện dính không được gỡ bỏ thủ công.
Yêu cầu thứ hai để giữ dữ liệu ở đâu đó cho đến khi Phương thức nhà sản xuất trả lại dữ liệu cho Người đăng ký. Giải pháp này có vẻ chính xác hơn, nhưng yêu cầu viết nhiều mã hơn.
Có ai vui lòng chia sẻ với các ý tưởng về cách xử lý trường hợp cạnh này không? Bất kỳ giải pháp sạch nào?
đây là điều tôi cũng muốn biết. bạn đã tìm thấy câu trả lời thỏa mãn chưa? – stefs
Tôi đã cố gắng giải quyết vấn đề này. Tôi đã tạo một đối tượng hòa giải ứng dụng (đối với các ứng dụng lớn hơn có thể được chia thành nhiều bộ trung gian), đối tượng hòa giải có tham chiếu yếu đến hoạt động được sử dụng một cách curently, hoạt động được đặt và không được đặt trên sơ yếu lý lịch và tạm dừng.Khi một sự kiện được gửi đi, người hòa giải nhận sự kiện, nó sẽ lưu kết quả trong bộ nhớ cache dữ liệu phiên, sau đó xếp hàng một lệnh để trả lời sự kiện sẽ thực hiện ngay hoặc khi một hoạt động hợp lệ được nối lại. Tôi rất muốn nghe bất cứ ai elses cách xung quanh này. – serenskye