Android基础知识05—活动的生命周期

------ 活动的生命周期 ------

Android是使用任务Task来管理活动的,一个任务就是一组存放在栈里的活动的集合。每当启动一个活动 ,他就会在返回栈中入栈,并处于栈顶位置。而每当我们按下 Back 键或调用 finish()方法去销毁一个 活动时,处于栈顶的活动会出栈,这时前一个入栈的活动就会重新处于栈顶的位置。系统总是会显示处 于栈顶的活动给用户。

活动的生命周期最多可能有四种状态:    

>> 运行状态: 活动处于栈顶位置    

>> 暂停状态: 活动不再处于栈顶位置,但是仍可见,活动处于暂停状态。系统一般不会回收。    

>> 停止状态: 活动不再处于栈顶位置,并不可见,活动处于停止状态。有可能会被系统回收。    

>> 销毁状态: 系统会回收处于这种状态的活动,从而保证手机充足。

活动的生命周期,七个回调方法:    

>> onCreate():活动第一次被创建的时候调用,一般完成活动的初始化操作,例如:加载布局, 绑定事件等。    

>> onStart(): 活动由不可见变为可见。    

>> onResume():活动处于运行状态,并且与用户进行交互。    

>> onPause(): 系统准备去启动或者恢复另一个活动的时候调用。一般在这个方法中将一些资源 释放掉。但是这个方法的执行速度要快,不然会影响到新的栈顶活动的使用。    

>> onStop():   活动在完全不可见的时候调用。与onPause方法的主要区别在:如果启动的是一个 对话框的活动,那么onPause方法得到执行,而onStop方法不会执行。    

>> onDestroy(): 在活动销毁之前调用,之后活动变为销毁状态。    

>> onRestart(): 活动由停止状态变为运行状态之前调用。

 

解决保证活动被系统回收之后出现数据丢失的问题:    

Activity提供了一个onSaveInstanceState()回调方法,解决临时数据保存问题。例子:      

@Override  

protected void onSaveInstanceState(Bundle outState) {   

  super.onSaveInstanceState(outState);   

  String tempData = "Something you just typed";   

  outState.putString("data_key", tempData);  

}    

启动活动读取临时数据代码,在onCreate方法中实现:  

@Override  

protected void onCreate(Bundle savedInstanceState) {   

  super.onCreate(savedInstanceState);   

  requestWindowFeature(Window.FEATURE_NO_TITLE);  

  setContentView(R.layout.activity_main);  

   if (savedInstanceState != null) {    

    String tempData = savedInstanceState.getString("data_key");  

   }     

  ……  

}    

转载于:https://www.cnblogs.com/BlogsOfLei/p/5679399.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值