首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >savedInstanceState不为空,但没有数据

savedInstanceState不为空,但没有数据
EN

Stack Overflow用户
提问于 2016-10-27 03:12:03
回答 2查看 231关注 0票数 0

我有一个片段活动,我导航到一个搜索页面,然后返回结果列表。有时需要重新创建活动,因此我将实例数据保存为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Override
public void onSaveInstanceState(Bundle outState) {

    super.onSaveInstanceState(outState);

    System.out.println("Saving instance state!");

    // Save the instance data
    // Filter data
    Intent mIntent = new Intent(this, BasicMapDemoActivity.class);
    filter.addFilterToIntent(mIntent);
    outState = mIntent.getExtras();

    // Save date data
    int year = currentDate.getYear();
    int month = currentDate.getMonth();
    int day = currentDate.getDay();
    outState.putInt("YEAR",year);
    outState.putInt("MONTH",month);
    outState.putInt("DAY",day);

    // Location data
    double latitude = mapLocation.latitude;
    double longitude = mapLocation.longitude;
    outState.putDouble("LATITUDE",latitude);
    outState.putDouble("LONGITUDE",longitude);

    // Other
    outState.putString("VIEW_MODE",viewMode.toString());
    outState.putString("SORT_TYPE",sortType);
    outState.putInt("ZOOM", mapZoom);
}

然后,我尝试恢复onCreate中的数据,但当我到达那里时,包不是空的,但它不包含我保存到其中的任何数据。下面所有的get函数都返回零(我在上面的代码块末尾确认数据是非零的):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    // If we are 're-creating', then get the old instance data, otherwise set defaults
    if(savedInstanceState == null)
    {
        // Set up default instance data
        currentDate = new Date(115,4,1);
        filter = new ObajoFilter();
        filter.start = currentDate;
        filter.end = new Date(115,4,1,23,59,0);
        viewMode = ViewMode.MAP;
        sortType = "Distance";
        mapLocation = userLocation;
        mapZoom = 16;

    } else {

        // Get date data
        int year = savedInstanceState.getInt("YEAR");
        int month = savedInstanceState.getInt("MONTH");
        int day = savedInstanceState.getInt("DAY");
        currentDate = new Date(year,month,day);

有什么办法可以清空捆绑包吗?据我所知,只有当应用程序被完全销毁时,savedInstanceData才是空的。

EN

回答 2

Stack Overflow用户

发布于 2016-10-27 04:13:22

由于这一行,outState = mIntent.getExtras();

您的outState指向不同的地址mIntent.getExtras(),,因此它为空

您应该直接使用outState.putXX,而不是创建新对象。

票数 0
EN

Stack Overflow用户

发布于 2016-10-27 04:14:15

您是否存储了要在onSaveInstanceState中保留的信息,如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Override
public void onSaveInstanceState(Bundle outState) {
    outState.putParcelable("someobject", someobject);
    outState.putBoolean("someboolean", someBoolean);
    outState.putInt("someint", someInt);
    super.onSaveInstanceState(outState);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40275494

复制
相关文章
安卓 setContentView使用「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。setContentView(R.layout.main) 在android代码里经常能看见 ,
全栈程序员站长
2022/09/13
1.7K0
Android--SVG在安卓系统中的应用
通过使用它的Path标签,几乎可以实现SVG中的其它所有标签,虽然可能会复杂一点,但这些东西都是可以通过工具来完成的,所以,不用担心写起来会很复杂。
aruba
2020/07/03
2.8K0
【翻译】30多个短小而又专业的最佳安卓开发者建议
2017-08-14 by Liuqingwen | Tags: Android | Hits
IT自学不成才
2019/01/08
6600
安卓系统框架介绍(安卓常用框架)
——源码地址1: https://android.googlesource.com/
全栈程序员站长
2022/07/30
8.7K0
安卓系统框架介绍(安卓常用框架)
安卓6.0申请多个动态权限
说来惭愧,最近在测试一个客户端文件上传的功能;一直在拿模拟器做的调试,对接成功后,文件上传没问题,相安无事;刚好自己用的是安卓机,就直接打包发到真机调试了,文件竟然一直上传不到服务器后面用了旧手机发现又能够上传成功,结果被直接蠢哭;一个是安卓8.0,一个是安卓5.0。果然,获取动态权限,调试成功。
木溪bo
2018/12/27
1.7K0
安卓系统usb调试在哪_安卓手机的usb调试
Android手机USB调试在哪?安卓手机如何打开USB调试模式?如果我们要将安卓手机连接到电脑上,从而传输文件、下载应用或ROOT等,都需要打开手机的USB调试模式。安卓系统的版本有很多,它们的打开方法也各不相同,下面给大家介绍各版本安卓手机打开USB调试模式的方法。
全栈程序员站长
2022/09/30
3.9K0
vue项目在安卓低版本机显示空白原因
查看安卓debug,报错,可能有箭头函数语法错误,或者其他语法问题,那可能是ES6语法问题。
蓓蕾心晴
2018/09/20
2.3K0
vue项目在安卓低版本机显示空白原因
安卓入门-第三章-安卓常用控件的使用方式
 TextView可以说是Android中最简单的一个控件了,你在前面其实已经和它打过一些交道了。它主要用于在界面上显示一段文本信息,比如你在第1章看到的“Hello world!”。下面我们就来看一看关于TextView的更多用法。
Fisherman渔夫
2020/02/19
1.9K0
安卓开发方式的进化之路
做安卓时间长了,接触到各种各样的框架,前前后后遇到了很多问题,这里顺便记录一下那些年在安卓开发的发展过程中的那些跨平台开发技术框架,大致如下: 如有错误,欢迎指正。 (一)适合WebApp的一些框架 1、Cordova 优点: 开源免费,社区生态成熟,插件丰富 支持离线场景应用 开发工具选择空间大 缺点: 只提供基础访问设备的接口,需要自己搭配其他UI框架和JavaScript框架来搭配 2、Ionic 优点: 国外的一款接近原生的Html5移动App开发框架,免费开源。 漂亮的界面,追求性能,专注原生,免费开源 Angular JS MVVM 开发理念,数据双向绑定 基于Cordova,可以使用 Cordova 的插件 缺点: 需要掌握 HTML + CSS + Angular JS ,学习路线陡峭 Ionic 框架相比于原生的 Cordova 有所差异,Cordova 某些官方插件可能不适用于Ionic 3、Dcloud 优点: 国内厂商,中文文档 对HTML5的性能、工具、能力都做了深入扩展,提供 IDE 、云服务等帮助节省时间 MUI 更贴近国内App使用习惯,提供模块的详细例子,如登录,个人中心 缺点: 部分操作需要具备原生开发经验,如离线打包App 新产品仍然有bug,还需改进 4、小程序 2016年9月21日,微信小程序正式开启内测。2017年1月9日0点,微信第一批小程序正式低调上线。 微信小程序,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。 优点: 1.即用即走——这个是从微信小程序上线就开始打的概念。即用即走使得小程序可以代替许多APP,或是做APP的整体嫁接,或是作为阉割版功能的承载体。 2.倚靠微信流量——相比APP,小程序一个突出的优点是完全嵌入了微信的聊天、公众号体系,完美进行微信体系内的流量引导。这一方面令小程序更加容易获客,另一方面也可以借助微信的成熟社交网络达到爆发式传播。 3.连接线上线下——连接线上线下场景也是微信小程序重要的一环,甚至最先开始为了推动线下习惯的养成,小程序在线上场景方面做了较强的限制。由于人们用微信扫描二维码的习惯培养得比较好,小程序相比APP更容易达成线上线下场景的连接与互动。 缺点: 1.留存——虽然有部分小程序已经杀出重围,但是普遍来讲,主打“即用即走”的小程序在用户留存上仍存在很大的提升空间。阿拉丁发布的小程序白皮书中显示,小程序的平均次日留存在13%左右,但是双周留存骤降到仅有1%。轻易拥有的也不在意失去,这大概是小程序目前的一个症结所在。 2.受控于微信——比起APP,尤其是安卓版的高自由度,小程序要面对很多来自微信的限制,从功能接口,甚至到类别内容,都要接受微信的管控,部分敏感内容还很容易遭受封禁威胁。 部分参考链接:https://www.zhihu.com/question/263816362/answer/274417734 5、PWA PWA(Progressive Web App)是 Google 于 2016 年提出的概念,2017 年已被迅速采用。 PWA全称Progressive Web App,即渐进式Web应用。 一个PWA应用首先是一个网页, 可以通过Web技术编写出一个网页应用. 随后添加上App Manifest和Service Worker来实现PWA的安装和离线等功能。 解决了哪些问题? 可以添加至主屏幕,点击主屏幕图标可以实现启动动画以及隐藏地址栏 实现离线缓存功能,即使用户手机没有网络,依然可以使用一些离线功能 实现了消息推送 它解决了上述提到的问题,这些特性将使得 Web 应用渐进式接近原生 App。 关于PWA更多详情介绍可以看以下博客介绍: https://segmentfault.com/a/1190000012353473 PWA的优势 可以将app的快捷方式放置到桌面上,全屏运行,与原生app无异 能够在各种网络环境下使用,包括网络差和断网条件下,不会显示undefind 推送消息的能力 其本质是一个网页,没有原生app的各种启动条件,快速响应用户指令 PWA存在的问题 支持率不高:现在ios手机端不支持pwa,IE也暂时不支持 Chrome在中国桌面版占有率还是不错的,安卓移动端上的占有率却很低 各大厂商还未明确支持pwa 依赖的GCM服务在国内无法使用 微信小程序的竞争 PWA写的app 比如这个:https://dd.shmy.tech/client (请使用谷歌浏览器打开) 6、Instant App 2016年的Google大会上,Google发布了有关Instant App的最新技术。千呼万唤之下,号称“Googl
竹清
2018/08/31
1.4K0
安卓开发方式的进化之路
安卓中的数据存取
在我们每天使用的手机设备中,无时无刻都在进行着数据的存和取。安卓作为一种手机操作系统,提供了如下方式的数据存取方式:Preference,File,Sqlite和网络,可以根据程序的实际需求选择合适的存取方式。
牛老师讲GIS
2018/10/23
1.3K0
安卓中的数据存取
安卓开发方式的进化之路
做安卓时间长了,接触到各种各样的框架,前前后后遇到了很多问题,这里顺便记录一下那些年在安卓开发的发展过程中的那些跨平台开发技术框架,大致如下:
AWeiLoveAndroid
2018/09/03
1.5K0
[android] 安卓消息推送的几种实现方式
长连接+心跳帧,我们平常的socket连接都是短连接,当用完之后会close掉,长连接是一直保持这个连接状态,但是如果一段时间,服务器和客户端没有消息传递,这个连接会被断掉,这个时候就引入了心跳帧的概念,客户端每隔一段时间会发送一条心跳短消息,保证连接一直存在
唯一Chat
2019/09/10
2.1K0
鸿蒙系统与安卓系统的区别
华为鸿蒙已经发布快一年了,但是经常还有小伙伴说,鸿蒙不就是安卓系统套个壳么?类似小米的米UI和华为自有的EMUI。 我们不可否认鸿蒙2.0系统跟安卓的界面确实很相似,但就因此判定鸿蒙系统是安卓换皮了吗? 都知道鸿蒙系统跟安卓一样,采用的是AOSP 开源代码,而安卓自身超过80%的代码都来自于开源项目,谁也不能说谁在换皮吧? 长期以来,谷歌Android和苹果iOS系统占据了全球移动端操作系统的绝大多数市场份额,除了苹果的IOS以外,其他手机基本使用的就是安卓系统,当然,鸿蒙推出以后就三分天下啦。 对于很多
老九君
2022/04/29
5.5K0
鸿蒙系统与安卓系统的区别
在Python中操纵json数据的最佳方式
在日常使用Python的过程中,我们经常会与json格式的数据打交道,尤其是那种嵌套结构复杂的json数据,从中抽取复杂结构下键值对数据的过程枯燥且费事。
朱卫军 AI Python
2022/04/03
4.1K0
在Python中操纵json数据的最佳方式
安卓再现系统广播高危漏洞,影响99.9%安卓手机
近日,有博客披露安卓系统存在安卓系统广播漏洞,99.9%的安卓手机将面临安全威胁。恶意程序利用该漏洞,可伪造任意内容的手机短信,及致手机死机,甚至可将手机恢复出厂设置(所有数据将被擦除)。该漏洞目前影响5.0版本以下99.9%的安卓系统手机。 安全专家研究发现,谷歌在刚刚发布的安卓系统5.0(Lolipop)中悄悄修复了一项高危漏洞,“利用该漏洞,可以发送任意广播:不仅可以发送系统保护级别的广播、还可以无视receiver的android:exported=false、android:permisson
安恒信息
2018/04/10
3.3K0
安卓再现系统广播高危漏洞,影响99.9%安卓手机
关于我使用的安卓View Binding方式
} 二、Using View Binding in Activities class MainActivity : AppCompatActivity() {
多凡
2021/12/06
6950
unicorn在安卓中使用
https://github.com/RikkaApps/Riru/releases
tea9
2023/03/08
9490
浅谈安卓中的MVP模式
端午放假,天气下雨,于是乎在家撸一下博客,本篇博客将为大家解析MVP模式在安卓中的应用。
老马的编程之旅
2022/06/22
9890
浅谈安卓中的MVP模式
安卓仓库管理系统源码
大等于jdk1.8,大于mysql5.5,idea(eclipse),Android Studio
淘毕设
2022/07/17
2.3K0
浅谈安卓系统上的DSU loader
什么是DSU loader? dsu loader即 动态系统更新可以在使用动态分区的安卓设备上,不影响原来系统的同时安装一个副系统,用于体验最新的原生安卓系统(AOSP)(博主评:相比传统刷机模式,
Tianli
2023/03/03
12.9K0

相似问题

安卓系统中的setContentView和按钮

13

setContentView安卓系统中的MainActivity错误

33

安卓系统上的setContentView故障

23

setContentView在安卓系统中是如何工作的?

20

在安卓系统中定期执行AsyncTasks的最佳方式

59
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文