Acitivity的生命周期概括 学自(第一行代码)

隐式的启动活动,在活动的标签当中加入<action android:name=”自己定义的。。。。”/>

表明活动可以响应我们自己定义的action

同时加入<category android:name=”自己定义的。。。”/>

表明这个活动能更精确的相应Intent可能带有的category。

 

StartActivityForResult(intent,1);当通过此方法启动的活动销毁后,希望获得从这个活动传递过来的数据。

 

在被启动的活动中,Intent intent = new Intent();

Intent.putExtra(……..);

setResult(RESULT_OK,intent);

finish();

 

回到之前的活动后在protected void onActivityResult(int resquestCode,int resultCode,Intent data){

         Switch(requestCode){

         Case1:{

                  If(resultCode== RESULT_OK)         {

                           String returnData =data.getStringExtra(……..);

                  }

         }

}

}

 

Android使用任务Task来管理活动,一个任务就是一组存放在栈里的活动的集合,这个栈被称为返回栈(Back Stack).

活动在其生命周期中具有四种状态:

运行状态:一个活动位于返回栈的栈顶,系统一般不会回收。

暂停状态:一个活动不再处于栈顶,但仍然可见,比如以对话框形式存在与屏幕中间区域的活动,此类活动仍然是完全存货的。

停止状态:活动不再处于栈顶,且完全不可见的时候.系统为这个活动保留相应的状态和成员变量,但你随时会收回内存。

销毁状态:活动从返回栈中移除时,就变成销毁状态。系统最倾向于回收这种状态。

onCreate():活动在第一次被创建的时候调用,用于初始化活动。

onDestroy():活动被销毁之前嗲用,之后活动变为销毁状态。

onResume():此方法在活动准备好和用户进行交互的时候嗲用,此时的活动一定位于返回栈栈顶,并处于运行状态

onPause():系统准备去启动或者或者恢复另一个活动的时候调用。通常使用此方法将一些消耗CPU的资源释放掉,或保存一些关键数据。但执行速度一定要快,否则会影响新的栈顶活动的使用。

onStart():活动由不可见变为可见的时候调用

onStop():在活动完全不可见的时候调用。如果启动的新活动是对话框式的活动,则只会调用

 

当一个活动被启动的时候,会调用onCreate(),onStart(),onResume()方法,当在此活动上启动另一个活动时,如果为对话框活动,此时本活动会调用onPause()进入暂停状态,同时对话框活动会启动。在对话框活动按Back返回原活动时,原活动会调用onResume()并不会调用onCreate().

如果在本活动的基础上启动另一个完整的活动A,则原活动会依次调用onPause(),onStop(),从活动A上按Back,此时原活动会调用onRestart(),onStart(),onResume();

当在原活动退出时会调用onPauser(),onStop(),onDestroy()。

 

若启动活动A后,在活动A中输入了一些数据,然后启动了活动B,此时活动A进入了停止状态,并且被系统回收了。在活动B中按下Back。则会重新加载活动,但是之前输入到活动A中的文字会全部丢失,因为活动A重建了。

可以在活动A中重写onSaveInstanceState(Bundle outState)回调方法,这个方法在活动被回收之前一定会保证被调用.

利用此方法中的Bundle参数,可以传递一些数据。

例:

String tempData = “this string is saved”

outstate.putString(“data_key”,tempData);

 

然后在方法A的onCreate(Bundle saveInstanceState) 的参数中,便可以取出之前回收活动A前保存好的数据,在onCreate()方法中:

If(saveInstanceState != null){

         StringtempData = saveInstanceState.getString(“data_key”);

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值