Activity(活动)生命周期--系统回收活动数据存储

当一个活动进入停止状态的时候,是有可能被系统回收的。那如果处于停止状态的活动被系统回收了,而它上面却有我们所需要数据该如何保存呢?(类似于:打开qq进入下一个界面没有进去,返回的时候仍然不需要你输入账户名和密码)Activity类中提供了onSaveInstanceState()回调方法,这个方法可以保证活动在被回收之前一定会被调用,因此我们可以通过这个方法来解决活动被回收时临时数据得不到保存的问题。

onSaveInstanceState()方法会携带一个Bundle类型的参数,Bundle提供了一些列的方法用于保存数据,比如可以使用putString()方法保存整型数据,由此类推。每个保存方法需要传入2个参数,第一个参数是键,用于从后面的Bundle中取值,第二个参数则是真正要保存的内容。

以Activitylifetest项目为例:

在MainActivity中添加如下代码就可以就可以将临时数据进行保存.

  1. @Override
  2. protected void onSaveInstanceState(Bundle outState) {
  3. super.onSaveInstanceState(outState);
  4. String tempData = "Somthing you jiut typed";
  5. outState.putString("data_key", tempData);
  6. }

数据是已经保存下来的,那么我们该如何恢复呢?修改MainActivity中的onCrate()方法

  1. @Override
  2. protected void omCreate(Bundle savedInstanceState){
  3. super.onCreate(savedInstanceState);
  4. Log.d(TAG,"onCreate");
  5. setContentView(R.layout.activity_activitylifetest);
  6. if(savedInstanceState !=null){
  7. String tempData=savedInstanceState.getString("data_key");
  8. Log.d(TAG,tempData);
  9. }
  10. }

取出值之后再做相应的操作恢复就可以了,比如说将文本内容重新赋值到文本输入框中。

备注:Intent还可以结合Bundle一起用于传递数据,首先可以把需要传递的数据都保存到bundle对象中,然后将bundle对象存放在Intent里。到了目标活动之后先从Intent中取出Bundle,然后再从Bundle中取出数据

null

时间: 2024-10-11 06:45:14

Activity(活动)生命周期--系统回收活动数据存储的相关文章

Android笔记-活动生命周期&Bundle回收临时数据&活动启动模式&常用技巧

Android使用任务(Task)管理活动,是一组存放在返回栈(Back Stack)里的活动的合集: 系统总是显示栈顶活动给用户: 启动新活动->新活动入栈 按下Back键或调用finish()->栈顶活动出栈 活动生命周期的四种状态: 1. 运行状态:处于栈顶 2. 暂停状态:不处于栈顶,但仍然可见 3. 停止状态:不处于栈顶,完全不可见,系统仍然保存其状态和成员变量,但不可靠 4. 销毁状态:从栈中移除,活动被系统回收 Activity的七个回调方法: 1. onCreate():活动第

android中 activity的生命周期

activity的生命周期: 1 : onCreate() --活动第一次被创建时调用,应该在这方法中完成活动初始化操作,如:加载布局,绑定事件 2 : onStart() --活动由不可见变为可见的时候调用 3 : onResume() --活动准备好和用户进行交互的时候调用,此时活动一定位于栈顶,处于运行状态 4 : onPause() --系统准备去启动或者恢复另一个活动的时候调用,通常可以在这个方法中将消耗CPU的资源释放掉 保存一些关键数据,但这个方法执行速度一定要快,不然会影响新的栈

四大组件之Activity(上)——Activity的生命周期、系统回收、系统配置改变的影响

第1节 Activity的使用 Activity几乎是每个应用必有的组件,所以任何安卓应用的开发几乎都是从Activity开始的. 比如,你希望设计一个计算器应用,要呈现这个计算器的功能(显示出计算器的样子,实现计算的能力)一定会在这个应用中创建一个Activity,让这个Activity展示的界面就是计算器. 所以使用Android Studio创建工程以后,会默认为我们创建一个Activity组件,它继承自Android SDK的Activity类. class CalulatorActiv

Android活动生命周期

一.Android活动 活动是 Android 应用框架中的一个核心组件,它在一个窗口(Window)对象中绘制用户接口并响应用户的交互. Android四大核心组件分别为Activity(活动).Service(服务).Content provider(数据源).Broadcastreceiver(广播接收器). 官方文档是这么定义的:"An Activity isan application component that provides a screen with which users

android学习四(Activity的生命周期)

要学好活动(Activity),就必须要了解android中Activity的声明周期,灵活的使用生命周期,可以开发出更好的程序,在android中是使用任务来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈.栈的特性是后进先出,在默认的情况下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置.而每当我们按下Back键或调用finish方法去销毁一个活动时,处于栈顶的活动会出栈,这时前一个入栈的活动就会重新处于栈顶的位置.系统总是会显示处于栈顶的活动给用户

Android开发艺术探索——第一章:Activity的生命周期和启动模式

Android开发艺术探索--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activity搬上来了,也确实,和Activity打交道的次数基本上是最多的,而且他的内容和知识点也是很多的,非常值得我们优先把他掌握,Activity中文翻译过来就是"活动"的意思,但是主席觉得这样翻译有些生硬,直接翻译成"界面"可能更好,的确,Activity主要也是用于UI效

Android开发艺术探索(一)——Activity的生命周期和启动模式

Activity的生命周期和启动模式 生命周期有? 1.典型情况下的生命周期—>指有用户参与的情况下,Activity所经过的生命周期改变 2.异常情况下的生命周期—>指Activity被系统回收或者由于当前设备的configuration发生改变而导致Activity被销毁重建 1.1 典型生命周期分析 旧活动的OnPause先调用,新Activity才启动 异常分析: 1.资源相关的系统配置发生改变,导致Activity被杀死并重新创建 系统只在Activity导致终止的时候才会调用OnS

android知识点:Activity的生命周期

应用程序(或Activity)执行的状态称为进程(progress).在 Android操作系统中,每个应用程序都是一个进程.Android框架会维护一个唯一的Activity历史记录堆栈,并观察每个应用程序进程.同时,系统平台会依照系统的内存使用情况和Activity的状态来管理系统内存.Activity类别除了负责运行程序流程与操作系统界面组件外,最重要的就是它提供了开发者控制进程生命周期的函数. Android应用程序的生命周期是由Android框架进行管理的,而不是由应用程序自己直接控制

Activity的生命周期以及启动模式

一.activity的生命周期: 1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态. 2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行. 3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态. 4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后