作家
登录

谷歌官方Android应用架构库——LiveData

作者: 来源: 2017-07-19 09:07:56 阅读 我要评论

return repository.getPostCode(address); 
  •     } 
  •  
  • 如不雅是像这种实现,UI 须要先大年夜之前的 LiveData 刊出并且在每次调用 getPostalCode() 时从新注册到新的实例。此外,如不雅 UI 被从新创建,它将会触发新的 repository.getPostCode() 调用,而不是应用之前的调用结不雅。

    不克不及应用那种方法,而应当实现将地址输入转换为邮政编码信息。

    1. class MyViewModel extends ViewModel { 
    2.     private final PostalCodeRepository repository; 
    3.     private final MutableLiveData<String> addressInput = new MutableLiveData(); 
    4.     public final LiveData<String> postalCode = 
    5.             Transformations.switchMap(addressInput, (address) -> { 
    6.                 return repository.getPostCode(address); 
    7.              }); 
    8.  
    9.   public MyViewModel(PostalCodeRepository repository) { 
    10.       this.repository = repository 
    11.   } 
    12.  
    13.   private void setInput(String address) { 
    14.       addressInput.setValue(address); 
    15.   } 
    16.  

    请留意,我们甚至使 postalCode 字段为 public final,因为它永远不会改变。postalCode 被定义为 addressInput 的转换,所以当 addressInput 改变时,如不雅有处于晃荡状况的不雅察者,repository.getPostCode() 将会被调用。如不雅在调用时没有处于晃荡状况的不雅察者,在添加不雅察者之前不会进行任何运算。

    创建新的转换

    在应用法度榜样中可能会用到十几种不合的特定转换,然则默认是不供给的。可以应用 MediatorLiveData 实现本身的转换,MediatorLiveData 是为了用来精确的监听其它 LiveData 实例并处理它们发出的事宜而特别创建的。MediatorLiveData 须要特别留意精确的向源 LiveData 传递其处于晃荡/闲置状况。有关具体信息,请参阅 Transformations 类。

    【编辑推荐】

    1. Android软键盘控制办法、以及开辟中碰到的一些问题。
    2. 总结Android模块化的一些常识点。
    3. 深刻懂得Android Instant Run运行机制
    4. Android APK反编译就这么简单详解(图文详解)
    5. Android Webview应用和碰到过的坑总结
    【义务编辑:枯木 TEL:(010)68476606】

      推荐阅读

      Windows安全协议现 LDAP & RDP 中继漏洞

    这些马脚让进击者可破解口令获取Windows凭证。Preempt合营开创人兼CEO阿基特&middot;桑切蒂称:&ldquo;威逼态势持续成长,凸显出现有安然协定中存在的马脚,这2个马脚也没什么不合。NTLM让公司企业和>>>详细阅读


    本文标题:谷歌官方Android应用架构库——LiveData

    地址:http://www.17bianji.com/lsqh/36284.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)