Tôi đang sử dụng Messenger Plugin trong ứng dụng MvvmCross của mình và đã nhận thấy rằng đôi khi nó xóa các đăng ký của tôi ("Một hoặc nhiều người nghe không thành công - đã xóa lịch biểu"). Điều này gây ra lỗi trong ứng dụng của tôi. Theo mặc định, tôi đang sử dụng tham chiếu yếu cho đăng ký và tôi không hủy đăng ký thư.MvvmCross Messenger Plugin Dọn dẹp đăng ký
Tôi có cần hủy đăng ký không? Không phải là điểm của một tham chiếu yếu để cho phép nó được thu gom rác?
Cơ sở của tôi đang đăng ký trong hàm tạo như được hiển thị bên dưới.
public BaseView()
{
_messenger = Mvx.Resolve<IMvxMessenger>();
_messenger.Subscribe<MyMessage>(s => Method());
}
Dưới đây là thiết bị phát sóng phát của tôi xuất bản tin nhắn của tôi.
var _messenger = Mvx.Resolve<IMvxMessenger>();
_messenger.Publish<MyMessage>(new MyMessage(this));
Tôi có ý định cố gắng hủy đăng ký trong onDestroy.
Nếu bạn có thể cho tôi một số thông tin chi tiết về lý do tại sao điều này đang xảy ra và một giải pháp có thể tôi sẽ biết ơn.
Xin cảm ơn trước.
Câu hỏi này sẽ được hưởng lợi từ một số mã thay vì "Cơ sở của tôi đang đăng ký vào hàm tạo và có ý định cố gắng hủy đăng ký trong onDestroy." – Stuart
Tôi đã thêm một số mã, hãy cho tôi biết nếu bạn cần thêm thông tin. – Jake