真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JetPack中的LiveData+ViewModel使用-創(chuàng)新互聯(lián)

JetPack中的LiveData+ViewModel使用

JetPack中的LiveData+ViewModel使用

在呼中等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),呼中網(wǎng)站建設(shè)費(fèi)用合理。
  • 先闡述一下JetPack:

    JepPack是谷歌推出的Android軟件組件集合,翻譯出來就是噴氣背包,
    意思是用上這個框架,谷歌就可以帶你飛。
    它幫助您遵循最佳做法、讓您擺脫編寫樣板代碼的工作并簡化復(fù)雜任務(wù),以便您將精力集中放在所需的代碼上。

    JetPck主要分為四個部分

    1:基礎(chǔ)
    AppCompat,Android KTX,Multidex,Test
    2:架構(gòu)
    Data Binding,LifeCycles,LiveData,ViewModel...
    3:行為
    Download Manager,Media,Notification,Shareing...
    4:UI
    Animation,Transitions,Auto,TV,Emoji...

    這四個部分都十分優(yōu)秀,這里我選擇LiveData和ViewModel來給大家做案例分析,
    能夠達(dá)到屏幕旋轉(zhuǎn)自動記住旋轉(zhuǎn)前的數(shù)據(jù)狀態(tài)實時自動同步

LiveData

在底層數(shù)據(jù)庫更改時通知視圖

ViewModel

以注重生命周期的方式管理界面相關(guān)的數(shù)據(jù)

JetPack中的LiveData+ViewModel使用

以上為viewmodel的生命周期,它會自動監(jiān)聽activity的生命周期。它只有在activcity完全被摧毀的時候才會調(diào)用onCleared(),你可以在這邊釋放你需要釋放的問題。

    class SeekBarModel : ViewModel() {
    //繼承ViewModel
    val _sBar = MutableLiveData()

    val sBar: MutableLiveData
        get() = _sBar

    var progress: Int? = null
        get() = _sBar?.value?.progress

    var observable: Subscription? = null
        get() = _sBar?.value?.observable

    override fun onCleared() {
        super.onCleared()
        Log.d("SeekBarModel", "ViewModel-->正在摧毀")
        observable?.unsubscribe()
    }
}

class BarI(progress: Int, observable: Subscription?) {
    var progress: Int? = null
    var observable: Subscription? = null

    init {
        this.progress = progress
        this.observable = observable
    }

}

class OriginLiveDataActivity : AppCompatActivity() {
    private lateinit var sekBarModel: SeekBarModel
    var observable: Subscription? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_origin_live_data)
        sekBarModel = ViewModelProviders.of(this).get(SeekBarModel::class.java)
        sekBarModel.sBar.observe(this, Observer { data ->
            bar_life.progress = if (data == null) 0 else data.progress!!
            btn_life.text = "當(dāng)前進(jìn)度" + bar_life.progress
        })
        start()
        btn_start.setOnClickListener { view ->
            finish()
        }
    }

//一秒加1,在bar上顯示進(jìn)度條
    private fun start() {
        if (sekBarModel.observable == null)
            observable = Observable
                    .interval(1000, TimeUnit.MILLISECONDS)
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe {
                        bar_life.progress += 1
                        sekBarModel.sBar.postValue(BarI(bar_life.progress, observable!!))
                        if (bar_life.progress == 100)
                            sekBarModel.observable?.unsubscribe()
                    }
    }

}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)站名稱:JetPack中的LiveData+ViewModel使用-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://weahome.cn/article/dhdjsp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部