首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

onsaveInstancestate不保存int值

onsaveInstanceState是Android中的一个方法,用于保存Activity的状态数据。它在Activity即将被销毁之前被调用,以便在Activity重新创建时恢复数据。

然而,onsaveInstanceState方法默认不保存int值。这是因为int值通常被认为是临时数据,可以通过其他方式进行恢复,例如重新计算或从其他数据源获取。因此,Android系统不会自动保存和恢复int值。

如果需要保存int值,可以通过以下几种方式实现:

  1. 使用Bundle保存:在onsaveInstanceState方法中,可以将int值放入Bundle对象中,然后在onCreate方法中的savedInstanceState参数中恢复。示例代码如下:
代码语言:txt
复制
@Override
protected void onSaveInstanceState(Bundle outState) {
    outState.putInt("myIntValue", myIntValue);
    super.onSaveInstanceState(outState);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        myIntValue = savedInstanceState.getInt("myIntValue");
    }
}
  1. 使用SharedPreferences保存:SharedPreferences是Android提供的一种轻量级的数据存储方式,可以用于保存简单的键值对数据。示例代码如下:
代码语言:txt
复制
@Override
protected void onSaveInstanceState(Bundle outState) {
    SharedPreferences.Editor editor = getSharedPreferences("MyPrefs", MODE_PRIVATE).edit();
    editor.putInt("myIntValue", myIntValue);
    editor.apply();
    super.onSaveInstanceState(outState);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE);
    myIntValue = prefs.getInt("myIntValue", 0);
}
  1. 使用静态变量保存:如果int值是全局的,可以将其定义为静态变量,这样即使Activity被销毁,变量的值也会保持不变。示例代码如下:
代码语言:txt
复制
public class MyActivity extends AppCompatActivity {
    private static int myIntValue = 0;

    // 其他代码...
}

需要注意的是,无论使用哪种方式保存int值,都需要在Activity重新创建时进行恢复,以确保数据的完整性和一致性。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云存储服务(COS):提供高可靠、低成本的云存储服务,适用于各种场景下的数据存储需求。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云数据库(TencentDB):提供多种数据库产品,包括关系型数据库、NoSQL数据库等,满足不同应用场景的数据存储和管理需求。详情请参考:https://cloud.tencent.com/product/cdb
  • 腾讯云人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等,帮助开发者快速构建智能化应用。详情请参考:https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):提供全面的物联网解决方案,包括设备接入、数据采集、数据存储和分析等,助力企业实现智能化转型。详情请参考:https://cloud.tencent.com/product/iot
  • 腾讯云移动开发(Mobile):提供移动应用开发的一站式解决方案,包括移动后端服务、移动推送、移动测试等,帮助开发者快速构建高质量的移动应用。详情请参考:https://cloud.tencent.com/product/mobile
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android:保存 & 恢复Activity 状态缓存 - onSaveInstanceState()、onRestoreInstanceState()

阅读本文可了解 Activity如何保存临时数据 & 状态 Activity如何恢复临时数据 & 状态 Activity如何保存临时数据 & 状态 1....super.onSaveInstanceState(savedInstanceState); } 补充说明: 布局每1个View默认实现:onSaveInstanceState(),即UI的任何改变都会自动的存储和在...activity重新创建的时候自动的恢复(只有在为该UI提供了唯一ID后才起作用) 若需复写该方法从而存储额外的状态信息时,应先调用父类的onSaveInstanceState()(因为默认的onSaveInstanceState...savedInstanceState.getBoolean("MyBoolean"); double myDouble = savedInstanceState.getDouble("myDouble"); int...的bundle参数会传递到onCreate方法中,可选择在onCreate()中做数据还原 至此,关于Activity的临时数据 & 状态 保存 & 恢复,讲解完毕。

2.9K30

【Android 应用开发】Activity 状态保存 OnSaveInstanceState参数解析

或者 onRestoreInstanceState 中保存的数据; -- 注意 : 只有是系统自动回收的时候才会保存 Bundle 对象数据; -- Bundle 对象来源 : onCreate()...方法中的 Bundle 对象参数, 是在 onSaveInstance() 或者 onRestoreInstanceState() 方法中保存的 Bundle 对象; . (2) onSaveInstanceState...(Bundle outState) 方法 outState 参数作用 :  -- 数据保存 : Activity 声明周期结束的时候, 需要保存 Activity 状态的时候, 会将要保存的数据使用键值对的形式...方法调用注意事项 :  -- 用户主动销毁不会调用 : 当用户点击回退键 或者 调用了 finish() 方法, 不会调用该方法; -- 调用时机固定 : 该方法一定是在 onStop() 方法之前调用...注意, 只有有 id 的组件才会保存; -- 关于默认的 super.onSaveInstanceState(outState) : 该默认的方法是实现 组件状态保存的; (3) onRestoreInstanceState

36020

PyTorch模型静态量化、保存、加载int8量化模型

所以,模型量化就是将训练好的深度神经网络的权,激活等从高精度转化成低精度的操作过程,例如将32位浮点数转化成8位整型数int8,同时我们期望转换后的模型准确率与转化前相近。...这个范围选的太大了(按照原来的最大最小来选,如下图所示),此时如果在头尾的浮点只有零星的几个,而且距离其他非常远,(如果此时是均匀量化)那么这个对于图中 α-α,β-β的离散可能就被浪费了,这样浮点到整型的映射后导致的误差可能就会很大...PyTorch模型训练完毕后静态量化、保存、加载int8量化模型 1....pth_to_int.py是对Pytorch的float32模型转成int8模型。 evaluate_model.py里加载int8模型进行推理。 3....模型静态量化 模型静态量化主要代码如下,读取float32模型,然后转成int8模型保存为openpose_vgg_quant.pth。完整代码可以从pth_to_int.py文件中看到。

5.5K40

详解 mysql int 类型的长度问题

创建数据库的时候发现一个问题: 改变 length 的, 不能影响到实际的存储长度!...秉着好奇心, 打开了 google ~ 引入大神的解答. mysql 在建表的时候 int 类型后的长度代表什么? 是该列允许存储的最大宽度吗?...每个整数类型的存储和范围.png 表格一共有四列分别表式: 字段类型, 占用字节数, 允许存储的最小, 允许存储的最大....计算机存储单位的换算: 1B=8b 1KB=1024B 1MB=1024KB 那么根据 int 类型允许存储的字节数是 4 个字节, 我们就能换算出 intUNSIGNED(无符号) 类型的能存储的最小为...0, 最大为 4294967295(即 4B=32b, 最大即为 32 个 1 组成); 接下来我们再说说我们建表时的字段长度到底是怎么一回事.

3.5K20

java integer最大_java int型最大最小,最大+1,最小-1

把符号位和数值合起来,得到int型的5再内存中的32位二进制码是 0000 0000 0000 0101 -5 数字为负数,第一位符号为是1,负数5的绝对的二进制码是 000 0000 0000 0101...int型能表示的最小负数 最小的负数的二进制码是1000 0000 0000 0000,其补码还是1000 0000 0000 0000,是2^31。...最大+1 最大的二进制码是0111 1111 1111 1111,加一以后二进制码是1000 0000 0000 0000,是int所能表示的最小的负数。...最小-1 最小的二进制码是1000 0000 0000 0000,减一后称为0111 1111 1111 1111,是最大的正数。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

2K10

脱围:使用 ref 保存及操作DOM

♻️ 前面多篇文章中提及:state 可以 ① 保存渲染间的数据; ② state setter 函数更新变量会触发 React 重新渲染组件。...当希望组件“记住”数据,又不想触发新的渲染时,便可以使用 ref ref 是一种脱围机制2,用于保留不用于渲染的:有些组件可能需要控制和同步 React 之外的系统。...可变 —— 可以在渲染过程之外修改和更新 current 的。 “不可变” —— 必须使用 state 设置函数来修改 state 变量,从而排队重新渲染。...不应在渲染期间读取(或写入) current 。 可以随时读取 state。但是,每次渲染都有自己不变的 state 快照。 useRef 内部是如何运行的?...与 state 不同,设置 ref 的 current 不会触发重新渲染。不要在渲染过程中读取或写入 ref.current。这使组件难以预测。

7000

MySQL 保存日期,用哪种数据类型合适?datetime?timestamp?还是 int

那么到底该用哪种类型来保存日期呢? 1. 字符串 在这些类型中,首先应该排除掉的就是字符串了,很多新手小伙伴爱用字符串存储日期,但实际上这并不是一个很好的方案。...如果你的业务需要对应不同的国家时区,那么类型 TIMESTAMP 是一种不错的选择,TIMESTAMP 类型字段的会随着服务器时区的变化而变化,自动换算成相应的时间,说简单点就是在不同时区,查询到同一个条记录此字段的会不一样...3. int 字符串费空间,TIMESTAMP 和 DATETIME 如果没有吃透则总感觉乱乱的,所以也有人存时间戳,存一个 int 类型的数值,用一个时间戳来表示时间。...用 int 保存时间的话,当我们需要进行日期排序以及按照日期范围查询的时候,就变成了普通的数字比较了,那么效率肯定是杠杠滴。...不过 int 有一个致命的问题就是可读性太差,所以用不用 int 就要仔细斟酌看情况了。 好啦,小伙伴们留言说说你日常开发日期用的哪种类型呢?出于什么样的考虑用了该类型?

1.5K20

Android后台杀死系列之一:FragmentActivity及PhoneWindow后台杀死处理机制

如果没有被异常杀死,走Activity的恢复新建流程,也就不会回调OnRestoreInstanceState,简单看一下Activity的加载流程图: onRestoreInstance调用时机.png...针对窗口保存了什么: protected void onSaveInstanceState(Bundle outState) { outState.putBundle(WINDOW_HIERARCHY_TAG...onSaveInstanceState主要用于获取View需要保存的State,并将自身的ID作为Key,存储到SparseArray states列表中,其实就PhoneWindow...后台杀死时View的保存及恢复 FragmentTabHost应对后台杀死做的兼容 FragmentTabHost其实跟ViewPager很相似,在onSaveInstanceState执行的时候保存当前位置...SavedState里的,之后通过doTabChanged切换到响应的Tab,注意这里切换的时候,Fragment由于已经重建了,是不会再次新建的。

2.9K30

保存mysql InnoDB的auto_increment另类方案

比如下面的代码: -- 刚创建表,该表没有AUTO_INCREMENT create table test( id int(11) primary key not null auto_increment...mysql的上述行为说明在mysql运行过程中InnoDB存储引擎的表,其AUTO_INCREMENT会随着插入操作持续增长的,但mysql重启之后,AUTO_INCREMENT并没有持久保存下来,...针对有自增ID的表,为每个表在$AUTOINCR_INDEXES_TABLE_NAME表中创建对应记录以保存该表的auto_increment for T in ${TABLES[@]} ; do...mysqld\]$|[mysqld]\ninit-file=$MYSQL_INIT_FILE|" /etc/my.cnf 上述代码说起来大概可以归结为以下三点: 将所有表的auto_increment保存下来...利用插入后的触发器,在每次插入数据后更新保存的auto_increment 利用init-file参数,在mysql服务启动时调用一个存储过程,该存储过程负责以保存的auto_increment为基准

97750
领券