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

savedInstanceState给了我一个错误的值

savedInstanceState是Android开发中的一个重要概念,用于保存和恢复Activity的状态数据。它是一个Bundle对象,用于在Activity销毁和重新创建时保存和传递数据。

当Activity因为配置变化(如屏幕旋转)或系统资源不足而被销毁时,系统会调用onSaveInstanceState()方法,将当前Activity的状态数据保存到一个Bundle对象中。然后,在Activity重新创建时,可以通过onCreate()方法的参数Bundle savedInstanceState来获取之前保存的状态数据。

然而,如果savedInstanceState给了你一个错误的值,可能有以下几个原因:

  1. 数据保存错误:在Activity销毁之前,可能保存状态数据的过程出现了错误,导致保存的值不正确。这可能是由于数据处理逻辑错误、数据类型转换问题或者保存的数据不完整等原因引起的。
  2. 数据恢复错误:在Activity重新创建时,可能恢复状态数据的过程出现了错误,导致获取到的值不正确。这可能是由于数据解析逻辑错误、数据类型转换问题或者获取的数据不完整等原因引起的。

解决这个问题的方法取决于具体的情况,可以尝试以下几个步骤:

  1. 检查保存数据的逻辑:确保在Activity销毁之前,保存状态数据的逻辑正确无误。可以检查保存的数据类型是否正确,数据是否完整,以及保存的过程是否有异常抛出等。
  2. 检查恢复数据的逻辑:确保在Activity重新创建时,恢复状态数据的逻辑正确无误。可以检查恢复的数据类型是否正确,数据是否完整,以及恢复的过程是否有异常抛出等。
  3. 调试和日志输出:可以在保存和恢复数据的关键位置添加调试代码和日志输出,以便定位问题所在。可以输出保存的数据内容和恢复的数据内容,以及相关的变量值,帮助排查错误。
  4. 使用其他保存状态的方式:除了使用savedInstanceState保存状态数据外,还可以考虑使用其他方式,如SharedPreferences、数据库或文件存储等来保存和恢复数据。这样可以避免依赖于系统的保存和恢复机制,减少出错的可能性。

总之,当savedInstanceState给了你一个错误的值时,需要仔细检查保存和恢复数据的逻辑,确保数据的正确性和完整性。如果问题仍然存在,可以通过调试和日志输出来进一步排查问题,并考虑使用其他保存状态的方式来解决。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

妹子给了我一个了乱码Excel,我差点误会了...

咳咳 人生三大错觉之一 就是她喜欢我 为了解开粉丝疑惑 让他面对现实 今天我就来给大家揭秘 乱码背后那些不为人知事 首先 我们要意识到 『乱码』 本质上是编码与解码方式不一致 举个例子 当用拼音方式来解读英文...到底是个什么东东 (非战斗人员可以撤离了) 首先,我们都知道 数据都是以二进制存储(在电脑中) 因此 按照不同编码方式 同一句话被编码后 01 字符串不同 (正如我们前面所说 UTF-8...直到 Unicode 出现 Unicode 制定就是为了 将世界上所有的符号都纳入其中 每一个符号都给予一个独一无二编码 如此一来就可以解决乱码问题 (虽然到现在并没有解决) 回到 UTF...-8 它其实是 Unicode 字符集一种编码方式 UTF-8 由 肯·汤普逊 和 罗勃 · 派克 发明 其中 肯·汤普逊 是名副其实大佬 听听 这是人话吗 知道了 UTF-8 来历...UTF-8 作为一种可变长编码方式 也就是说 不同字符占用字节数不同 2003年11月 UTF-8 被 RFC 3629 重新规范后 使用 1- 4个字节来进行编码 规则其实很简单 看不懂没关系

58420

New PMC 田原: 开源给了我一个接触非业务系统机会

5.查询优化相关工作,比如过滤算子下推等 2022年4月21日,经 Apache IoTDB 社区投票, 田原成为 Apache IoTDB PMC member,今天,我们为大家带来对他访谈...给予我在开源上启蒙 在这之前,我对开源社区认识还比较简单,认为它只是一个可以给大家免费用软件,也只知道像 Spark、Hadoop 这样明星产品。...所以当你真正作为一个底层系统软件运营开发者去考虑时候,由于出发点变了,很多都会不一样,由此带来自我价值实现和成就感,对我去提升技术能力会很有推动力。...做出首个贡献 刚加入社区时候,我做一个工作是做一个 Hive 连接器,也就是让 Hive 能够识别 IoTDB 底层存储文件格式 TsFile ,能够通过hive查询到tsfile里存储数据...当然,这个也是依托 IoTDB 这个开源社区影响力,才会让这么一个功能发布后,进入更多公众视野中。 攻克技术难关 查询引擎重构是一个比较大技术难关。

64520
  • Spring Data默认错误

    Spring Data有很多配置默认,但不一定都适合你。如一个依赖Cassandra 项目,有时写入数据后,并不能立马读到。这种错误并没有什么报错,一切都是正常,就是读不到数据。...常见搭配是 R(读)和 W(写)一致性都是 LOCAL_QURAM,这样可以保证能及时读到写入数据;而假设在这种情况下,读写都用 LOCAL_ONE,则可能发生这样情况:用户写入一个节点 A 就返回...,但用户 B 立马读节点是 C,由于是LOCAL_ONE 一致性,则读完 C 就可立马返回。...其实是最合适,因为只有一台机器,读写都只能命中一台。但产线上 Cassandra 大多都是多数据中心多节点,备份数大于1。所以读写都用 LOCAL_ONE 就会出现问题。...修正 修改默认,以 consistency 为例。

    1.1K20

    Power Query中错误提醒3种方式

    在Power Query中当出现错误时,会出现错误提示原因,如图。 ?...如果这些错误在产生前就能预判,并给与一定提醒,那对于后续使用会非常方便,即使发生了错误,也能知道错误原因以及怎么去修改错误。怎么去判断是否错误呢?...可以使用try,之前有认识过try语句大部分情况是和otherwise同时出现,但是try也可以单独使用,以上面这个案例来说,如果使用try就可以发现,这些提醒信息实际上是一个记录格式。 ?...那有没有可能自定义这些提醒内容呢?可以,在Power Query中可以使用error语句,自定义错误时返回提示内容,那具体怎么操作呢? 有3方式可以实现。 1....这里需要注意是,记录中3个字段名是固定,对应error错误提示内容位置,其中Reason为必要内容。前面2个参数只能是文本格式,而最后一个Detail字段可以为文本格式,也可以为记录格式。

    2.7K40

    VBA小技巧10:删除工作表中错误

    这里将编写VBA代码,用来删除工作表指定区域中错误,这在很多情况下都很有用。 如下图1所示,有一组数据,但其中有一些错误,我们想要自动删除这些错误。 ?...图1 删除错误数据表如下图2所示。 ? 图2 如果不使用VBA,可以使用Excel“定位”功能来实现。...如下图3所示,单击功能区“开始”“编辑”组中“查找和选择——定位条件”,弹出“定位条件”对话框。在该对话框中,选取“公式”中“错误”前复选框,如下图3所示。 ?...图3 单击“确定”后,工作表中错误数据单元格会被选择,单击“Delete”键,删除错误,结果如上图2所示。...这段代码虽然相对长一些,但相比较前面的两种方法,可以自动在错误单元格中输入内容。

    3.4K30

    一个错误版本

    题目描述 难度级别:简单 你是产品经理,目前正在带领一个团队开发新产品。不幸是,你产品最新版本没有通过质量检测。由于每个版本都是基于之前版本开发,所以错误版本之后所有版本都是错。...., n],你想找出导致之后所有版本出错一个错误版本。 你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。...实现一个函数来查找第一个错误版本。你应该尽量减少对调用 API 次数。 示例: 给定 n = 5,并且 version = 4 是第一个错误版本。...调用 isBadVersion(3) -> false 调用 isBadVersion(5) -> true 调用 isBadVersion(4) -> true 所以,4 是第一个错误版本。...解题思路 二分查找 通过二分查找确定第一次版本,通过变量res保存上一次错误版本。

    51200

    new ChromeDriver()一个特殊错误

    平常一直使用Selenium启动chrome很顺利,但是运气就是那么差,在做企业内训时候突然跑好好Chrome跑步起来了,情况是Chrome浏览器启动了然后一闪而过就关闭了,留下一脸懵逼我。...好吧既然问题出现了,解决不了是睡不着,所以仔细分析了一下问题原因,最后解决了。 首先浏览器能启动起来,说明chromedriver本身是没问题!...,想想看是不是同样原因。...那么换个角度吧,解决Chrome崩溃问题,不要使用--no-sandbox启动。仔细看了下往上解决方案,发现一切根源是一个叫做bd001.sys文件。...所以在无法启动chrome时候除了chromedriver匹配外,还可以参考一下这个问题。

    76030

    一个很无力403错误

    老高为了省时省力,在window平台下开发环境使用了UPUPW,这个环境使得老高可以在5min内搭建出一个完整(nginx/apache) + PHP + my*开发环境。...但是最近在调试接口时候,偶尔会有几个接口直接报错403,于是开始了无尽403折磨之路。 首先看是不是代码抛出403,结果发现干脆执行不到index.php,断定是nginx问题。...然后看日志,发现error_log配置是致命错误才打印日志,果断开成debug模式,然后发现错误信息为:access forbidden by rule,说明被nignx某一条配置给挡住了。...根据经验,一般是nginx会使用deny语句否定请求,于是祭出grep大招: # cd 到nginx配置目录 grep -rn deny . 结果如下: λ grep -rn deny . ....(htaccess|conf|uini|log)$ { deny all; } 搜嘎,突然回想一下,出错url好像是log结尾。。。

    99430

    一个 ClassLoader 引起 JNI 链接错误

    我们最近在做插件工程就遇到了一个诡异JNI链接错误。...在主工程中有一个类库,有JNI方法,但为了减少主工程包大小,so文件由插件在用到时自己下载和加载。 而这种加载方式,出现了诡异UnsatisfiedLinkError错误。...首先从libraries中查找记录,如果有说明该so已经加载过,再判断和so关联ClassLoader是不是当前ClassLoader,如果不是,返回false,这说明同一个路径so只能被一个ClassLoader...做了赋值,是通过GetJniDlsymLookupStub()获得,就是一个artjnidlsymlookupstub函数地址,到这里我们知道类加载后其native方法地址被设置成了artjnidlsymlookupstub...要和当前ClassLoader是同一个才行,不然会放弃查找,到此我们疑惑也就解开了,因为JAVA层代码是在主工程ClassLoader里,而加载so用是插件ClassLoader,两个ClassLoader

    3.3K00

    特征锦囊:怎么把被错误填充缺失还原?

    今日锦囊 怎么把被错误填充缺失还原?...上个小锦囊讲到我们可以对缺失进行丢弃处理,但是这种操作往往会丢失了很多信息,很多时候我们都需要先看看缺失原因,如果有些缺失是正常存在,我们就不需要进行丢弃,保留着对我们模型其实帮助会更大。...此外,还有一种情况就是我们直接进行统计,它是没有缺失,但是实际上是缺失,什么意思?.../data/pima.data', names=pima_columns) # 处理被错误填充缺失0,还原为 空(单独处理) pima['serum_insulin'] = pima['serum_insulin...=0 else None) # 检查变量缺失情况 pima['serum_insulin'].isnull().sum() # Output:374 批量操作 # 批量操作 还原缺失 columns

    79430

    一个ClassLoader引起JNI链接错误

    前言 Android插件化工程具有减少方法数和包大小,易于扩展等优势,深得大型工程青睐,但同时插件化也会引起一些意想不到麻烦。我们最近在做插件工程就遇到了一个诡异JNI链接错误。...在主工程中有一个类库,有JNI方法,但为了减少主工程包大小,so文件由插件在用到时自己下载和加载。 而这种加载方式,出现了诡异UnsatisfiedLinkError错误。...该函数较长,但逻辑还是很清晰,我们只列出了关键代码,libraries保存了一个以so路径和SharedLibrary对象为记录Map,保存了当前所有已经加载so。...首先从libraries中查找记录,如果有说明该so已经加载过,再判断和so关联ClassLoader是不是当前ClassLoader,如果不是,返回false,这说明同一个路径so只能被一个ClassLoader...SetEntryPointFromJni就是对entry_point_from_jni_做了赋值,是通过GetJniDlsymLookupStub()获得,就是一个artjnidlsymlookupstub

    1.1K110

    记录一个assembly: Dependency造成错误

    一个xamarin.forms工程需要一个Toast来提示信息,大家知道forms没有内置这个简单控件,不可思议。要自己引入不同平台实现。于是,偷懒用向导创建了一个c#类。...结果用 [assembly: Dependency(typeof(Toast_Android))] 引入实现时候居然提示: “错误CS7036 未提供与“DependencyAttribute.DependencyAttribute...(string, LoadHint)”必需形参“loadHintArgument”对应实参” 。...突然想起来以前有添加过这种代码,成功了,没出错误啊。 于是翻出老代码。也是对比了半天。头都钻到屏幕里面去了,还是没看出啥区别。撸了一把冷静了一下,突然看出区别来了。如下图: ? 出错代码 ?...正确代码 真是蛋疼啊。。刚开始直接忽略了系统生成using部分,就是蓝色框框部分。忽然看到using部分不一样,于是把正确代码块using部分替换到了出错代码快中,立马ok!

    60840

    关于null一个小问题

    01 线上操作一个小问题 今天在处理业务时候,碰到了一个小问题,这里简单记录下。...如下: alter table tbl_name modify col_name not null comment '表注释'; 执行这个SQL时候,碰到了一个错误: ERROR 1138 (22004...这就证明,确实是由于数据中存在null,而修改语句又是要把这个字段改为not null选项,所以发生了冲突,mysql针对这种冲突就会报一个'null使用不合法'错误。...(总不能像我一样直接truncate表吧) 第2.当我们看到一个字段是null时候,我们应该如何判断它内容是'NULL'字符串,还是真的是null?...关于第一个问题,可能我们需要利用一个update操作,利用is null作为where匹配条件去先把这些null改为空,然后再进行alter操作。

    57310
    领券