最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

深入理解安卓MVVM架構(gòu)原理

2023-02-21 16:06 作者:碼碼乎乎  | 我要投稿

深入理解安卓MVVM架構(gòu)原理

1. 簡(jiǎn)介

  1. LifeCycle
  2. 界面生命周期感知
  3. DataBinding
  4. 數(shù)據(jù)和UI雙向綁定
  5. ViewModel
  6. 業(yè)務(wù)邏輯
  7. LiveData
  8. 可觀察數(shù)據(jù)項(xiàng)
  9. MVVM項(xiàng)目框架搭建
  10. 通用性的快速開(kāi)發(fā)框架
  11. 可應(yīng)用各項(xiàng)目中


## 2. Lifecycle

2.1 功能使用

  1. Lifecycle類說(shuō)明、作用和意義
  2. 監(jiān)聽(tīng)Activity的生命周期變化,LifecycleEventObserver
  3. 使用@OnLifecycleEvent監(jiān)聽(tīng)特定生命周期(反射)
  4. 使用APT實(shí)現(xiàn)3(回調(diào))
  5. 最佳應(yīng)用方式

2.2 源碼分析

  1. Activity如何監(jiān)聽(tīng)生命周期變化的
  2. @OnLifecycleEvent注解是如何使用的? 反射調(diào)用的過(guò)程
  3. 使用APT時(shí),回調(diào)方法的過(guò)程
  4. 匿名內(nèi)部類作為L(zhǎng)ifecycleObserver時(shí),有什么特殊?

2. Databinding

2.1 功能使用

  1. 字段單向數(shù)據(jù)綁定
  2. 字段雙向數(shù)據(jù)綁定

  3. 界面事件綁定
  4. onclick
  5. onLongClick
  6. onItemClick
  7. onCheckedChanged
  8. onItemChangedChanged
  9. 綁定內(nèi)容表達(dá)式支持
  10. ==、>、<、>=、<=、?:、!= 、??、&&、||、!、&、|、~、instanceof、<<、>>、>>>、() + - * /
  11. 導(dǎo)入其他的類,類別名
  12. 嵌套綁定問(wèn)題
  13. include其他布局文件
  14. 綁定的數(shù)據(jù)共享
  15. 自定義BindingAdapter的方式
  16. Glide自定義BindingAdapter實(shí)現(xiàn)
  17. 在xml中直接給ImageView設(shè)置顯示圖片
  18. 圖片可以是網(wǎng)絡(luò)圖片http、本地文件地址、drawable資源、assets資源等
<ImageView
 android:layout_width="100dp"
 android:layout_height="100dp"
 app:binding_src="@{viewmodel.image}"/>
  1. RecyclerView通用Adapter綁定實(shí)現(xiàn)
  2. 不再需要寫Adapter、Holder類
<RecyclerView
??android:layout_width="match_parent"
??android:layout_height="match_parent"
??app:itemBinding="@{viewmodel.itemBinding}"
/>

2.2 源碼分析

  1. 說(shuō)說(shuō)雙向數(shù)據(jù)綁定的實(shí)現(xiàn)原理?
  2. 如何自定義BindingAdapter?
  3. 自定義的BindingAapter是如何調(diào)用的?
  4. databinding對(duì)原始的xml布局文件做了哪些修改?
  5. 編譯后的xml和原始xml有什么區(qū)別?區(qū)別的內(nèi)容有什么作用?
  6. Databinding使用APT生成了哪些代碼?
  7. Databinding和ViewBinding的區(qū)別?

3. ViewModel

3.1 ViewModel的使用

  1. 每個(gè)Acitivty或Fragment都配一個(gè)自己的ViewModel,Viewmodel中處理這個(gè)Activity的業(yè)務(wù)邏輯
  2. MainActivity ---> MainViewModel
  3. LoginActivity ---> LoginViewModel
  4. ViewModel對(duì)象的創(chuàng)建
  • 直接new對(duì)象,不推薦,無(wú)法復(fù)用,無(wú)法自動(dòng)清理
  • 用ViewModelProvider來(lái)創(chuàng)建
LoginViewModel vm = ViewModelProvider(this).get(LoginViewModel.class);
  • 用kotlin擴(kuò)展函數(shù)來(lái)創(chuàng)建
implementation 'androidx.activity:activity-ktx:1.5.1'
val vm = viewmodels<LoginViewModel>()
  1. ViewModel的生命周期
  2. 同Activity,onDestroy時(shí)執(zhí)行onClear清理ViewModel

3. 2 ViewModel源碼

  1. 有幾種創(chuàng)建ViewModel的方式?
  2. 如何在應(yīng)用中所有的ViewModel中都傳入某個(gè)全局對(duì)象,如Http請(qǐng)求類的單例。而不需要在創(chuàng)建ViewModel時(shí)顯示傳遞此參數(shù)
  3. 如何自定義創(chuàng)建ViewModel的Fragtory?安卓有哪些現(xiàn)成的Fragtory?有什么作用?
  4. ViewModel如何在多個(gè)Activity中共享?
  5. ViewModel如何實(shí)現(xiàn)在Activity銷毀時(shí)自動(dòng)清理的?


深入理解安卓MVVM架構(gòu)原理的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
安阳县| 武胜县| 通山县| 鲁甸县| 汽车| 北宁市| 金乡县| 措美县| 湘潭县| 依兰县| 繁峙县| 维西| 犍为县| 雅江县| 惠来县| 夏河县| 府谷县| 汉中市| 柘城县| 额敏县| 绥宁县| 安多县| 德安县| 香港 | 金阳县| 华阴市| 阿坝县| 繁昌县| 习水县| 齐齐哈尔市| 玛多县| 甘谷县| 梓潼县| 玛沁县| 威信县| 黑水县| 云安县| 金秀| 巴马| 昭通市| 柞水县|