本节学习Activity的状态保存与恢复。

先用例子开始:

布局文件主要是实现如下,大家自行编写

Activity逻辑代码:

public class FiveActivity extends Activity {private Button setButton;private Button getButton;private EditText editText;private float value;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_five);setButton = (Button)findViewById(R.id.button1);getButton = (Button)findViewById(R.id.button2);editText = (EditText)findViewById(R.id.editText1);setButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubvalue = 1.234f;editText.setText("hello world");}});getButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString string = editText.getText().toString();Toast.makeText(FiveActivity.this, string+" "+value, 0).show();}});}@Overrideprotected void onSaveInstanceState(Bundle outState) {// TODO Auto-generated method stubLog.i("FiveActivity", "onSaveInstanceState");super.onSaveInstanceState(outState);}}

第一种情况:  
按set按钮,并且按get按钮

当然了,这时候按back按钮,当再次进入后,会发现输入框里没有内容,同时按get得到为0.0

同时第一种情况中我的打印Log.i("FiveActivity", "onSaveInstanceState");始终也是没有打印

接着第二种情况:

当我们set后,再按get后。 这次不按Back键,这次按Home键:

当我们按Home键后,我们的Activity就处于stop状态,这时候我们的打印语句出现了

这时候我们手动杀死FiveActivity

这时候在启动Activity,当再次get时就会发现:

EditText中的文字Hello World依旧存在,而我的Value变量变为0.0了。

总结:

1: 对于第一种情况,Android系统觉得是用户自愿的行为,觉得那就没有保存的必要了。

2: 对于第二种情况,EditText中的文字存在那是因为Android系统中几乎对所以的UI都实现了OnSaveInstanceState方法,这是默认的实现。所以当我们Home出去时就会打印出现,至于我们的变量为啥没有恢复,很明显那是因为没人保存它的值,这就得需要我们程序员自己手动保存。

当我们在OnCreate方法中添加:

     if(savedInstanceState != null)value = savedInstanceState.getFloat("1234");
 protected void onSaveInstanceState(Bundle outState) {// TODO Auto-generated method stubLog.i("FiveActivity", "onSaveInstanceState");outState.putFloat("1234", value);super.onSaveInstanceState(outState);}

这样的话,当杀死进程后,再次进来我们的数据就会正常的出现。

同时, 除系统资源不足时,或者手机的屏幕方向变化时,改变语言时,都会导致Activity重现销毁,然后重现再创建。这时候如果我们不保存需要保存的数据,也会出现不对的情况。

Android 四大组件学习之Activity六相关推荐

  1. Android四大组件之——Activity的生命周期(图文详解)

        转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai       联系方式:JohnTsai.Work@gmail.com       [Andro ...

  2. Android四大组件之——Activity(一)定义、状态和后退栈(图文详解)

    什么是Activity 关键字:应用组件.四大组件.用户界面,交互. An Activity is an application component that provides a screen wi ...

  3. Android——四大组件、六大布局、五大存储

    一.android四大组件 (一)android四大组件详解 Android四大组件分别为activity.service.content provider.broadcast receiver. 1 ...

  4. Android四大组件和启动模式(面试总结)

    一.Android四大组件详解 Android四大组件分别为Activity.Service.Content Provider.Broadcast Receiver. 1.Activity (1)一个 ...

  5. 第六课-Android四大组件之Activity

    Activity是Android四大组件之一,它是个控制类,主要控制界面的加载显示,用户交互处理,数据的获取,数据的传送等.在它的onCreate方法中的setContentView方法就是来加载一个 ...

  6. 重温Android四大组件(一)—Activity的生命周期

    前言 四大组件对于Android开发者是老生常谈的知识了,相信每个Android开发者对四大组件都已经很熟悉了.但是四大组件作为Android应用的基础,作为开发者不仅要熟悉而且要烂熟于心. 这里以& ...

  7. android的四大组件及使用场景,Android/四大组件/Activity.md · BoraxZYF/AndroidInterview - Gitee.com...

    ## 四大组件 ## Activity ### Activity 的四种启动模式及使用场景 - standard 标准模式,Activity 的默认启动模式.每次启动一个 Activity 时都会创建 ...

  8. Android四大组件之Activity(第一篇-简单使用)

    Android四大组件之Activity(第一篇-简单使用) 前言 一.Activity是什么? 二.如何使用 1.继承 2.重写onCreate() 总结 文章目录 前言 一.Activity是什么 ...

  9. Android四大组件之——Broadcast学习总结

    1.Broadcast概念 是一个全局的监听器,属于Android四大组件之一.Broadcast(广播)是一种广泛运用的在应用程序(APP)之间传输信息的机制.而BroadcastReceiver( ...

  10. Android开发之路--(2)--Android四大组件

    版权声明:本文为博主原创文章,转载请标明出处. https://blog.csdn.net/lyhhj/article/details/47214197     说实话我对Android的理解还是比较 ...

最新文章

  1. C++/C++11中头文件algorithm的使用
  2. 类中成员函数声明后面的const的含义
  3. mysql表去掉回车、换行
  4. vue中央事件总线eventBus的简单理解和使用
  5. 轻松搞定个人虚拟桌面部署之4-配置远程访问
  6. 资深系统管理员给Linux/Unix新人们的建议
  7. swift开发的小坑
  8. selenium BY定位
  9. 字符串(AC自动机):COCI 2015 round 5 divljak
  10. [facebook-wda]iOS App元素定位
  11. 详解Vant组件的使用
  12. GUI(图形用户界面)
  13. 将网站上的web字体base,woff2转换成.ttf系统字体
  14. 使用windbg调试器定位程序的内存泄漏
  15. Vue组件化开发--脚手架的安装使用、目录结构说明
  16. js插件--1.swal
  17. 【加密与解密】C#如何读取pem的KEY文件
  18. 前端JS常见树——Tree
  19. 手机chrome没有声音_Chrome浏览器没有声音,解决windows10Chrome浏览器没有声音的问题...
  20. 打怪小游戏(已支持商店)

热门文章

  1. vs2015环境搭建与简单程序测试
  2. 【C++】非原创|统计代码覆盖率(一:C)
  3. nginx配置中文域名解析
  4. Lua1.0 数据结构
  5. 第五章 APP元素定位
  6. IOS_多线程_GET_POST_AFN_上传下载_视频播放
  7. JDK常见问题 环境变量配置
  8. android 自定义控件之下拉刷新源码详解
  9. 当你不能回答别人的提问时怎么办
  10. 如此逼真的高清图像居然是端到端网络生成的?GANs 自叹不如 | ICCV 2017