当前位置:网站首页>ViewModel 记录下 +
ViewModel 记录下 +
2022-08-03 06:34:00 【清风徐来辽】
特点:
- 单一职责,将数据从业务中抽离出来。即只要是界面上看的到的数据,相关变量都应该存放在ViewModel,而不是Activity中
- 生命周期长,存在于所属对象(Activity,Fragment)的全部生命周期

- 扩展性好,方便与其他功能组合,例如Livedata,room.
使用场景:
- 横竖屏切换,Activity重建,数据可依然保存
- 同一个Activity下,Fragment之间的数据共享
应用事例:
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
public class BookChargeVM extends AndroidViewModel {
private MutableLiveData<Boolean> initReuslt = new MutableLiveData();
public BookChargeVM(@NonNull Application application) {
super(application);
}
public LiveData<Boolean> getInitResult() {
return this.initReuslt;
}
}
@Route(path = "/main/AndroidViewModelActivity")
public class AndroidViewModelActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_android_view_model);
AppLogUtils.i(TAG,"onCreate --------------");
this.mVM.getInitResult().observe(this, (result) -> {
AppLogUtils.i(TAG,"result ===="+result);
});
}
private BookChargeVM mVM
= (BookChargeVM) ViewModelProvider.AndroidViewModelFactory.getInstance(this.getApplication()).create(BookChargeVM.class);
}
AppLogUtils.i(TAG,"result ===="+result);
这行日志没有打出来,就是说initReuslt 未改变的情况下不会产生回调
支持协程
将 Kotlin 协程与生命周期感知型组件一起使用:https://developer.android.google.cn/topic/libraries/architecture/coroutines
参考地址
ViewModel简介:https://www.jianshu.com/p/105541cde280
ViewModel 使用及原理解析:https://blog.csdn.net/xfhy_/article/details/88703853
Android 开发者-文档-指南-ViewModel 概览:https://developer.android.google.cn/topic/libraries/architecture/viewmodel#java
边栏推荐
猜你喜欢
随机推荐
QT信号与槽
MySQL - 视图操作
华为设备配置BFD多跳检测
Embedding two implementations of the torch code
第一章:ARM公司Cortex-M 系列处理器介绍,第二章:嵌入式软件开发介绍和第三章:Cortex-M3和Cortex-M4处理器的一般介绍
信息学奥赛一本通T1449:魔板
分布式数据库数据一致性的原理、与技术实现方案
DIFM network, rounding and repetition
Nacos下载与安装
torch.nn.modules.activation.ReLU is not a Module subclass
用代码构建UI界面
信息学奥赛一本通T1448:深搜的剪枝技巧 电路维修
关于Attention的超详细讲解
重量级大咖来袭:阿里云生命科学与智能计算峰会精彩内容剧透
nacos-2.0.3启动报错出现no datasource set的坑
关于NOI 2022的报到通知
unity 摄像机旋转拖拽缩放场景
Cesium loads offline maps and offline terrain
pyspark @udf 循环使用变量问题
Pinned Articles-









