最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android?Jetpack組件中LifeCycle作用詳細介紹

 更新時間:2022年09月19日 15:17:42   作者:艾陽Blog  
Jetpack是谷歌在Google?I/O?2017大會上發(fā)布一套幫助開發(fā)者解決Android架構(gòu)設(shè)計的方案,而Lifecycle是Jetpack?architecture下的一部分,一起來看一下Lifecycle的使用及原理分析

Jetpack

Jetpack,我覺得翻譯為“飛行器”更好聽,因為Google針對編程歷史亂象,整理出一套組件庫,幫助開發(fā)者創(chuàng)造更完美的應(yīng)用作品?,F(xiàn)在市面上,很多公司招聘面試要求漸漸把Jetpack看作必會技能,Google也在瘋狂的安利Jetpack組件,和Kotlin一樣屬于親兒子一樣了。

1、那么Jetpack是什么呢

如圖所示,Jetpack是一個由多個技術(shù)庫組成的套件,可幫助開發(fā)者遵循最佳做法,減少樣板代碼并編寫可在各種Android版本和設(shè)備中一致運行的代碼,讓開發(fā)者精力集中編寫重要的代碼。

2、為何使用Jetpack

  • 遵循最佳做法:Android Jetpack 組件采用最新的設(shè)計方法構(gòu)建,具有向后兼容性,可以減少崩潰和內(nèi)存泄露。
  • 消除樣板代碼:Android Jetpack 可以管理各種繁瑣的Activity(如:后臺任務(wù)、導(dǎo)航和生命周期管理),以便你可以專注于打造出色的應(yīng)用。
  • 減少不一致:這些庫可在各種Android 版本和設(shè)備中以一致的方式運作,助你降低復(fù)雜性!

3、Jetpack與AndroidX

  • AndroidX命名空間中包含Android Jetpack庫
  • AndroidX代替Android Support Library
  • AAC(Android Architecture Component) 中的組件并入AndroidX
  • 其他一些需要頻繁更新和迭代的特性也并入了AndroidX

LifeCycle

LifeCycle顧名思義是用來幫助開發(fā)者建立可感知生命周期的jetpack組件之一。LifeCycle在其內(nèi)部管理自己的生命周期,從而解藕頁面和組件,降低內(nèi)存泄露發(fā)生的可能性,Activity、Fragment、Service、Application均有LifeCycle支持。

1、LifeCycle的作用

如圖所示,LifeCycle用來監(jiān)聽Activity與Fragment的生命周期變化。

2、LifeCycle應(yīng)用

例如,一般我們在Activity中使用計時器時會在生命周期onPause和onReSume對其操作。因為計時器是長周期的變量,如果Activity關(guān)閉了,但沒有關(guān)閉計時器,就會繼續(xù)持用activity的引用造成內(nèi)存泄露。

1、設(shè)計組件

//自定義了控件,繼承了Chronometer計時器,實現(xiàn)了LifecycleObserver接口
@SuppressLint("ViewConstructor")
class MyChronometer : Chronometer, LifecycleObserver {
    constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
    var elapsedTime: Long = 0
    //計時開始 ,方法添加了注解
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    open fun startMeter() {
        base = SystemClock.elapsedRealtime() - elapsedTime
        start()
    }
    //計時暫停 ,方法添加了注解
    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    open fun stopMeter() {
        elapsedTime = SystemClock.elapsedRealtime() - base
        stop()
    }
}

2、使用組件

class Step2Activity : AppCompatActivity() {
    private var chronometer: MyChronometer? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //組件
        chronometer = findViewById(R.id.chronometer)
        //添加觀察者
        lifecycle.addObserver(chronometer!!)
    }
}

3、總結(jié)LifeCycle的使用

1、繼承LifeCycle Observer方法

class lifecycleTest : LifecycleObserver {
    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    fun onCreate() {
     }
    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    fun onStart() {
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    fun onResume() {
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    fun onPause() {
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    fun onStop() {
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    fun onDestroy() {
    }
}

2、添加觀察者

lifecycle.addObserver(lifecycleTest)

到此這篇關(guān)于Android Jetpack組件重LifeCycle作用詳細介紹的文章就介紹到這了,更多相關(guān)Android Jetpack LifeCycle內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android 事件觸發(fā)機制的深入學(xué)習(xí)

    Android 事件觸發(fā)機制的深入學(xué)習(xí)

    這篇文章主要介紹了 Android 事件觸發(fā)機制的深入學(xué)習(xí)的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Android WebP 圖片壓縮與傳輸

    Android WebP 圖片壓縮與傳輸

    本文主要講解Android WebP 圖片壓縮與傳輸,這里對WebP圖片格式以及如何實現(xiàn)壓縮和傳輸,做了詳細講解,有需要的小伙伴可以參考下
    2016-08-08
  • Android使用CountDownTimer類實現(xiàn)倒計時鬧鐘

    Android使用CountDownTimer類實現(xiàn)倒計時鬧鐘

    這篇文章主要為大家詳細介紹了Android使用CountDownTimer類實現(xiàn)倒計時鬧鐘,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Android編程之菜單實現(xiàn)方法

    Android編程之菜單實現(xiàn)方法

    這篇文章主要介紹了Android編程之菜單實現(xiàn)方法,以實例形式較為詳細的分析了Android編程實現(xiàn)菜單的布局及功能相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Android Dialog詳解及實例代碼

    Android Dialog詳解及實例代碼

    這篇文章主要介紹了 Android Dialog詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Android下拉框PopupWindow使用詳解

    Android下拉框PopupWindow使用詳解

    這篇文章主要為大家詳細介紹了Android下拉框PopupWindow的使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Flutter之可滾動組件子項緩存?KeepAlive詳解

    Flutter之可滾動組件子項緩存?KeepAlive詳解

    這篇文章主要為大家詳細介紹了Flutter之可滾動組件子項緩存?KeepAlive,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Android studio 快速刪除無用資源的方法

    Android studio 快速刪除無用資源的方法

    最近苦于android 項目越來越大,項目需求不停變動。項目中的資源文件越來越雜,越來越亂。android studio怎么刪除無用資源呢?下文圖文并茂給大家介紹的非常詳細,需要的朋友參考下吧
    2017-11-11
  • Android圓形旋轉(zhuǎn)菜單開發(fā)實例

    Android圓形旋轉(zhuǎn)菜單開發(fā)實例

    本文給大家分享一個動畫菜單,基于android開發(fā)圓形旋轉(zhuǎn)菜單案例,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-09-09
  • 在Android中調(diào)用WebService實例

    在Android中調(diào)用WebService實例

    這篇文章主要介紹了在Android中調(diào)用WebService實例,有需要的朋友可以了解一下。
    2016-11-11

最新評論

安吉县| 尼勒克县| 连城县| 靖安县| 红原县| 德格县| 赞皇县| 宾阳县| 巍山| 霍州市| 新绛县| 敖汉旗| 昌图县| 容城县| 高台县| 钟祥市| 灵山县| 普宁市| 桦甸市| 宽甸| 始兴县| 泰州市| 吴旗县| 聂荣县| 苍山县| 洛川县| 苏尼特左旗| 余干县| 铜川市| 安丘市| 金门县| 河池市| 准格尔旗| 六枝特区| 寻甸| 绍兴市| 永康市| 商丘市| 吉首市| 那曲县| 西吉县|