MVVM中的Messenger
Posted 逛园子$$$
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVVM中的Messenger相关的知识,希望对你有一定的参考价值。
通过Mvvm Light源码我们可以知道Messenger的实现细节,如果你现在还不能理解这些代码也没关系,很多东西理解起来远比使用起来难,Messenger也是如此,它使用起来很简单,由于Messenger只公开了一些消息注册和发送方法,使用者一看便知方法的功能,而只需关注要发送的数据和接收的对象就可以了。
1、发送:
1 Messenger.Default.Send<string>("StartRecordVis");//开始录制可见光,发送消息
2、接收:
1 1 Messenger.Default.Register<string>(this, BDRecordVideo);// 开始录制 2 2 private void BDRecordVideo(string obj) 3 3 { 4 4 switch (obj) 5 5 { 6 6 case "StartRecordVis": 7 7 this.visVideo.StartCapture("vis");//录制可见光 8 8 break; 9 9 case "StartRecordInf": 10 10 this.infVideo.StartCapture("inf");//录制红外 11 11 break; 12 12 } 13 13 }
3、清理
Messenger通过全局的字典集合来保存弱引用关系,因此在对象不使用时,我们要养成清理的习惯,调用Unregister来从字典集合中移除引用关系。
1 Messenger.Default.Unregister(this);
以上是关于MVVM中的Messenger的主要内容,如果未能解决你的问题,请参考以下文章
这是使用 MVVM Light Messenger 类的正确方法吗
Android 上的 Kotlin:如何在片段中使用数据库中的 LiveData?