【问题标题】:MVP on Android, inject viewsAndroid 上的 MVP,注入视图
【发布时间】:2017-01-03 00:48:15
【问题描述】:

我遵循 MVP 模式。我在presenter中有两种方法setView(Avtivity a) & clearView()

什么对性能更好,打电话给onStart() & onStop()onCreate() & onDestroy

【问题讨论】:

    标签: android performance architecture mvp


    【解决方案1】:

    从图中我们可以看到在 onStop() 中视图只是隐藏了,所以我建议您在 onDestroy() 中清除视图。还有一个额外的建议是,最好使用诸如 mvpView 之类的接口来实现活动,该接口包含演示者可能调用的所有方法并更改为 setView(MvpView 视图)。

    【讨论】:

      【解决方案2】:

      什么意思?我使用 MVP,每个视图都有演示者,演示者界面带有 attachView 和 detachView

      我总是在 onCreate() 上调用它们

      我认为你应该看看这篇帖子的第一个答案Difference between onCreate() and onStart()?

      我认为 onCreate() 是附加视图时应该始终使用的方法

      【讨论】:

        【解决方案3】:

        我建议将Activity View设置为onCreate,并在Destroy上移除,你也可以将Fragment View设置为onAttach,在Detach上移除。

        我必须补充一点,这不是性能的概念!在这方面你必须避免内存泄漏。

        【讨论】:

          【解决方案4】:

          这取决于.. 您可以使用 3 组回调

          1) onResume() onPause() 仅当该视图可见并且用户可以与之交互时,这将使您的演示者可以使用该视图引用

          2) onStart() onStop() 这将使您的演示者可以使用上述视图参考,并且如果视图甚至部分可见

          3) onCreate() onDestroy() 只要它基本上存在,这将使您的演示者可以使用视图参考

          • 所以取决于您的用例,您是否需要更新视图,或者在视图不可见时执行任何操作?还是棘手?
          • 另一个需要考虑的因素是调用频率,因为 onCreate() onDestroy() 对对于每个视图只会调用一次,而另一方面,其他的会被更频繁地调用

          【讨论】:

            猜你喜欢
            • 2018-01-17
            • 2016-11-15
            • 1970-01-01
            • 2012-04-04
            • 1970-01-01
            • 2015-11-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多