【Android】Architecture Components最佳实践--Lifecycles

  • UI controllers (activities and fragments) 中代码越少越好,不应该自己去请求数据,而是用ViewModel来更新数据,并且监听LiveData来更新UI
  • UI controllers 中的UI写成数据驱动的,也就是UI controller需要做的只有当数据变化时更新view,或者当用户有输入行为时给ViewModel反馈
  • 把数据逻辑放在ViewModel中,ViewModel存在的目的是将UI controller 与应用内其他的一切分离。ViewModel的作用并不是拿数据(如从网络上,从数据库),而是告诉相应的组件它该做什么,然后给UI controller 提供返回的数据
  • 可以使用DataBinding来保证UI controllers与view之间的代码清晰度。如果我们要更新ui,那么避免不了的就是在UI controllers中写更新的代码,java中当然也可以用Butter Knife之类的东西来打成类似的目的
  • 如果UI比较复杂,可以创建Presenter来进行UI 更新,有的时候可能会多写出一些代码,但是可以易于测试
  • ViewModel永远不要持有View或者Activity的引用,可能会导致内存泄漏
posted @ 2017-07-18 11:58  DevLi  阅读(223)  评论(0编辑  收藏  举报