【发布时间】:2020-01-28 19:16:00
【问题描述】:
我正在 MVP 架构中实现一个 android 应用程序。
我在我的演示者中保留对视图的引用,并执行耗时的任务,例如从我的模型中的网络加载。
我的问题是,在我想要调用 View 方法的演示者内部的每个调用中,视图可能已经被破坏并且它的引用在演示者内部设置为 null。
所以当我收到模型的结果时,在像mView.updateUISomehow() 这样的每个调用之前需要添加if (mView!=null),因为当控制达到这一点时,mView 可能会为空。
我想知道是否有任何方法可以跳过所有 null 检查并在类范围的异常处理程序中处理演示者类的所有可能异常。
P.S. 我知道 MVVM、LiveData 和 Room。我想解决这个确切的问题:)
【问题讨论】:
-
您已经知道 MVVM 是推荐的方式,但是您想仔细阅读这个!您可以为演示者创建一个超类,它应该有一个 UiUpdate() 方法来检查关联视图是否为空,因此基本解释器类的子类不必
-
@PankajNimgade 是否有任何其他方法或库来实现 MVVM 而不使用 LiveData 和 Room 来处理生命周期本身?这很奇怪,但不知何故我不喜欢 LiveData 和 Room! :D
-
哈哈哈,我希望我能说你不是第一个这么说的人。有些人已经这样做了,但我认为这将是重新发明轮子。然而这是可能的。
-
如果您不喜欢 LiveData 和 Room,您可能不喜欢其他库。但你可以试试 RxAndroid for VM 和 Realm for database
标签: android exception nullpointerexception android-mvp