AndroidArchitecture Components最佳实践--Lifecycles

Posted DevLi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AndroidArchitecture 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的引用,可能会导致内存泄漏

以上是关于AndroidArchitecture Components最佳实践--Lifecycles的主要内容,如果未能解决你的问题,请参考以下文章

markdown Serviços - InjeçãodeDependência(DI)+ como usarumeserviçoemum compo

json 此片段用于以下知识库文章 - https://kb.wpbeaverbuilder.com/article/220-installl-beaver-builder-via-compos

WslRegisterDistribution failed with error: 0x8007019e The Windows Subsystem for Linux optional compo

VUE - vue.runtime.esm.js?6e6d:619 [Vue warn]: Do not use built-in or reserved HTML elements as compo

vue错误:vue.runtime.esm.js?0261:619 [Vue warn]: Do not use built-in or reserved HTML elements as compo

vue错误:vue.runtime.esm.js?0261:619 [Vue warn]: Do not use built-in or reserved HTML elements as compo