当前位置: 首页 > news >正文

织梦网站地图模板修改wordpress 无插件主题

织梦网站地图模板修改,wordpress 无插件主题,旺道seo系统,如何做网站家具导购ViewModel 概览 Android Jetpack 的一部分。 ViewModel 类是一种业务逻辑或屏幕级状态容器。它用于将状态公开给界面,以及封装相关的业务逻辑。 它的主要优点是,它可以缓存状态,并可在配置更改后持久保留相应状态。这意味着在 activity 之…

ViewModel 概览   Android Jetpack 的一部分。

ViewModel 类是一种业务逻辑或屏幕级状态容器。它用于将状态公开给界面,以及封装相关的业务逻辑。 它的主要优点是,它可以缓存状态,并可在配置更改后持久保留相应状态。这意味着在 activity 之间导航时或进行配置更改后(例如旋转屏幕时),界面将无需重新提取数据。

1.导包:

    //viewModel包// https://mvnrepository.com/artifact/androidx.lifecycle/lifecycle-viewmodel-ktximplementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'//runtimeOnly 用于声明一个只在运行时需要的依赖。这意味着这个依赖在编译时不需要,但在运行时需要。// 设为runtimeOnly 在编译时会提示有些包找不到比如 viewModels 提示没有  解决方法改为 implementation//implementation  依赖项作为编译和运行时的依赖。这意味着这个依赖在编译和运行时都是可见的。//工具类实现viewModel创建简化开发 2个包// https://mvnrepository.com/artifact/androidx.fragment/fragment-ktximplementation  'androidx.fragment:fragment-ktx:1.6.1'// https://mvnrepository.com/artifact/androidx.activity/activity-ktximplementation  'androidx.activity:activity-ktx:1.6.1'

2.ViewModel() 的创建 

写个类实现 ViewModel()

package com.exampleimport android.app.Application
import android.util.Log
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.ViewModel/*** ViewModel() 的创建* AndroidViewModel() 子类*/
class MyviewModel : ViewModel() {//初始化块init {Log.i("TAG", ": MyviewModel ViewModel 初始化")}//internal  只能在同一个模块或库中被访问,而不能在其他模块或库中被访问。internal fun getName(): String {return "---MyviewModel getName()方法-${System.currentTimeMillis()}"}//重新销毁方法override fun onCleared() {super.onCleared()Log.i("TAG", ": MyviewModel onCleared 销毁方法")}
}//AndroidViewModel(private val application: Application) : ViewModel()
class MyviewModelTwo(application: Application) : AndroidViewModel(application) {//初始化块init {Log.i("TAG", ": MyviewModelTwo AndroidViewModel 初始化")}fun getName(): String {return "---MyviewModelTwo getName()方法-${System.currentTimeMillis()}"}//重新销毁方法override fun onCleared() {super.onCleared()Log.i("TAG", ": MyviewModelTwo onCleared 销毁方法")}}

3.ViewModel 的3种使用方法

MainActivity

package com.exampleimport android.os.Bundle
import android.util.Log
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelLazy
import androidx.lifecycle.ViewModelProviderclass MainActivity : AppCompatActivity() {//viewmodel使用1.代理 by ViewModelLazy 返回Lazy<VM>val vm1: MyviewModel by ViewModelLazy<MyviewModel>(MyviewModel::class,{ viewModelStore },{ defaultViewModelProviderFactory })//2.使用工具类导包方法简化写法 实现原理和上面一样//    implementation  'androidx.fragment:fragment-ktx:1.6.1'//    implementation  'androidx.activity:activity-ktx:1.6.1'val vm2: MyviewModel by viewModels<MyviewModel> { defaultViewModelProviderFactory }override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)Log.i("TAG", "---创建--onCreate")setContentView(R.layout.activity_main)//3.ViewModelProviderval vm3: MyviewModel = ViewModelProvider(viewModelStore,//这个对象只有在Activity创建之和才会有defaultViewModelProviderFactory).get(MyviewModel::class.java)//4 java 中方法  implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03'
//         myViewModle = ViewModelProviders.of(this).get(MyViewModle.class);//val mviewModel = ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory(this.application))[MyviewModelTwo::class.java]// mviewModel.getName()//输出结果Log.i("MainActivity", "vm1.getName ${vm1.getName()}")Log.i("MainActivity", "vm2.getName ${vm2.getName()}")Log.i("MainActivity", "vm3.getName ${vm3.getName()}")}override fun onStart() {super.onStart()Log.i("TAG", "---开始--onStart")}override fun onResume() {super.onResume()Log.i("TAG", "---运行--onResume")}override fun onPause() {super.onPause()Log.i("TAG", "---暂停--onPause")}override fun onDestroy() {super.onDestroy()Log.i("TAG", "---销毁--onDestroy")}override fun onStop() {super.onStop()Log.i("TAG", "---停止--onStop")}override fun onRestart() {super.onRestart()Log.i("TAG", "---重新启动--onRestart")}}

Log 日志:

打开启动: ---创建--onCreate
: MyviewModel ViewModel 初始化
vm1.getName ---MyviewModel getName()方法-1704437476931
vm2.getName ---MyviewModel getName()方法-1704437476931
vm3.getName ---MyviewModel getName()方法-1704437476931
---开始--onStart
---运行--onResumehome 键退出:
---暂停--onPause
---停止--onStop重新打开:
---重新启动--onRestart
---开始--onStart---运行--onResume退出应用:
---暂停--onPause
---停止--onStop
: MyviewModel onCleared 销毁方法
---销毁--onDestroy
http://www.yayakq.cn/news/746233/

相关文章:

  • 大专网站建设的论文范文动态表情包在线制作
  • ECMS做的网站护理专业简历制作
  • 石家庄网站开发哪家好长春网站seo
  • 网站建设基本流程包括姐妹直播视频tv
  • 企业没有专业人员怎么建设网站济南网站搜索优化
  • 设计软件免费下载网站那个网站可以做logo
  • 石家庄企业建站系统网站班级文化建设
  • 三门峡河南网站建设网站 缓存什么时候使用
  • 口碑好的郑州网站建设查域名注册
  • 装饰行业网站建设广州 建 网站
  • 做网站去哪里建筑方案设计考试
  • 济南营销型网站建设工作室网站空间哪里买
  • 企业网站建设最新技术国家对网站建设有什么要求
  • 企业网站的主要功能网站开发的工作内容
  • 株洲企业网站建设费用做网站国外网站
  • 做简历用什么网站jsp网站设计教学做一体化教程
  • 上海八号桥 网站建设汕尾网站建设
  • 企业网站建设排名推荐郑州网站建设最便宜
  • 投资集团网站建设方案网站建设联盟
  • 找人做个网站大概多少钱全国最缺工100个职业表
  • 下载网站所有网页jsp网站开发四 酷 全书源码
  • 小型网站开发开题报告范文做素食香料哪个网站买
  • 网站设计包括什么什么是网络营销含义
  • 做网站的服务器有哪些做网站推广见客户的话术
  • 咸宁做网站的公司网站制作与管理技术...
  • 郑州百度网站快速优化成都百度seo搜索引擎优化培训
  • html嵌入网站网络营销的专业知识
  • 购物网站建设平台如何制作网址教程
  • dede模板蓝色大气简洁企业网站模板沧州网络推广
  • 沭阳三剑客做网站小程序ui设计报价