android view 存值,使用ViewModel保存数据
使用viewModel保存数据,使App被系统kill后,再次启动依然可以恢复被kill前的数据
下面的
model = ViewModelProviders.of(this,new SavedStateViewModelFactory(this)).get(MyViewModel.class);
api过时了,没有此方法了,仅记录下实现保存数据的思路
1.导入
implementation 'androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01'
2.定义构造函数
导入lifecycle-viewmodel-savedstate后ViewModel中可以使用带有一个参数的构造函数
private MyViewModel(SavedStateHandle handle){
this.handle = handle;
}
public MutableLiveData getNumber() {
if(!handle.contains(MainActivity.KEY_NUMBER)){
handle.set(MainActivity.KEY_NUMBER,0);
}
return handle.getLiveData(MainActivity.KEY_NUMBER);
}
//定义方法保存数据
public void add(){
getNumber().setValue(getNumber().getValue() + 1);
}
3.在Activity中的代码调整
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.SavedStateViewModelFactory;
import androidx.lifecycle.ViewModelProviders;
import android.os.Bundle;
import com.gao.viewmodelrestore.databinding.ActivityMainBinding;
public class MainActivity extends AppCompatActivity {
MyViewModel model;
ActivityMainBinding binding;
public static final String KEY_NUMBER = "key_number";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
// model = ViewModelProviders.of(this).get(MyViewModel.class);
//下面的api过时了,不能用了
model = ViewModelProviders.of(this,new SavedStateViewModelFactory(this)).get(MyViewModel.class);
binding.setData(model);
binding.setLifecycleOwner(this);
}
}
android view 存值,使用ViewModel保存数据相关推荐
- android view 存值,在android studio中保存textview和复选框的值
问:如何在android studio中保存文本视图和复选框的值,以便稍后我进入该活动时以及在设置新值然后保持新值时可见设置的数据. 答:SharedPreferences用于在Android中存储原 ...
- Android doc|Getting Started|部分 --转载 保存数据
保存数据 大多数 Android 应用需要保存数据,即使仅保存在 onPause() 过程中与应用状态有关的信息,以便用户进度不会丢失 . 大多数非平凡应用也需要保存用户设置,并且有些应用必须在文件和 ...
- Android数据存储之SharedPreferencesSave存储(保存数据,读取数据的操作)
GitHub项目地址: https://github.com/Skymqq/SharedPreferencesSave.git 不同于文件的存储方式,SharedPreferences是使用键值对的方 ...
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式
上一篇跟各位童鞋介绍了SharedPreference 和 File流如何存储数据,并且推荐使用FileOutputStream/FileInputStream来存储咱们游戏数据,那么这一篇则是像大家 ...
- Android 之 Navigation在目的地之间传递数据、ViewModel
文章目录 Android 之 Navigation在目的地之间传递数据.ViewModel 一.在目的地之间传递数据 1. 定义目的地参数 2.使用 Safe Args 传递安全的数据 3.在目的地之 ...
- android view架构,ViewModel 概览
ViewModel 概览 ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据.ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存. 注意:如需将 ViewModel导 ...
- Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)
知识点: 1.使用SQL Helper创建数据库 2.数据的增删查改(PRDU:Put.Read.Delete.Update) 背景知识: 上篇文章学习了保存文件,今天学习的是保存数据到SQL数据库中 ...
- Android产品研发(十)--尽量不使用静态变量保存数据
转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了Android开发过程中几种常见网络协议:xml,json,protobuf等,以及它们各自的优缺点,一般而言当我们的App涉及到了网络传输时都会 ...
- scrapy爬取知名问答网站(解决登录+保存cookies值+爬取问答数据)--完整版完美解决登录问题
菜鸟写Python:scrapy爬取知名问答网站 实战(3) 一.文章开始: 可能看到这篇文章的朋友,大多数都是受慕课网bobby讲师课程的影响,本人也有幸在朋友处了解过这个项目,但是似乎他代码中登录 ...
最新文章
- android 默认中文时区,修改android默认系统语言为中文和时区
- 抽象:程序员必备的能力
- labelme数据增强_NO. 21 标注工具 amp; 合成数据生成工具
- python在统计专业的应用_Python统计学一数据的概括性度量详解
- 一步步编写操作系统 40 内存分页下用户程序与操作系统的关系
- 添加文字 生成pdf_PDF 文件编辑方法和工具大全
- Unity中的layer和tag
- 从Java中的串口读取文件
- Axis2 生成客户端
- Linux时间子系统之(四):timekeeping
- ORA-01950: 对表空间 'USERS' 无权限
- protobuf 中 repeated fields 细节
- 计算机音乐制作 体会心得,音乐软件制作的学习感受和心得体会
- C++ endl 详解
- OLED的中英文和图片显示
- 智能搜索框html代码,js实现搜索框关键字智能匹配代码
- 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow第2版》-学习笔记(3)
- De Bruijn 序列生成的本原多项式方法
- 创维e900v21e芯片_创维e900v21e网络机顶盒强制刷机教程及注意事项
- Max3成功刷入原生Android,小米Max 2用户类原生系统福利:第三方开发者为其适配LineageOS...
热门文章
- python百分号转义_python 转义字符、运算符、列表。。。。
- Pulseaudio调用alsalib open()流程(十五)
- Ubuntu搜狗输入法ctrl+alt+b冲突解决
- Chrome默认开启flash
- Android6.0显示系统(五) SurfaceFlinger服务
- DefaultKeyedVector和KeyedVector用法
- C++ 命名空间三种用法
- android之提示Cleartext HTTP traffic to not permitted
- 远程桌面无法启动Matlab的解决方案
- 大一python考试知识点_Python基础知识点(精心整理)