Android基础(六)---Intent、生命周期

Intent分为两种:显示Intent和隐式Intent。Intent有多个构造函数的重载,其中一个是

Intent(Context packageContext,Class<?> cls)
  • 第一个参数Context对象表示启动活动的上下文
  • 第二个参数Class则是指定想要启动的目标活动

Activity中提供了一个startActivity(0方法专门用于启动活动,其接受一个Intent参数,即将构建好的Intent传入startActivity()方法就可以启动目标活动了。

如果需要返回上一个界面,可以点击Back键或者在程序中调用finish()方法。

=========================================插入=================================

任何一个新活动(NewActivity)其继承关系如下述所示:

NewActivity<<<AppCompatActivity<<<FragmentActivity<<<BaseFragmentASctivityJB<<<BaseFragmentActivityHoneycomb<<<BaseFragmentActivityGingerbread<<<SupportActivity<<<Activity

==================================================================================================

活动的层叠性:即活动是可以层叠的,类似于栈的结构,栈顶的活动是处于显示给用户的

一个活动Activity在其生命周期中最多有四个状态:运行状态、暂停状态、停止状态、销毁状态

Activity类定义了7个回调方法,覆盖了活动生命周期的每个环节:

  • onCreate():每个活动中都要重写该方法,在活动第一次被创建的时候调用,主要用于完成活动的初始化操作,比如加载布局、绑定事件等
  • onStart():在活动由不可见变为可见的时候调用
  • onResume():在活动准备好和用户进行数据交互时调用,该活动一定处于栈顶,并且处于运行状态
  • onPause():在系统准备去启动或者恢复另一个活动的时候调用。该方法会释放一些CPU资源,保存上一个活动的关键数据。该方法要求执行速度要快,不要影响到栈顶活动的调用
  • onStop():在活动完全不可见的时候调用,该活动与onPause方法的差别在于,如果启动的活动是一个对话框式的活动,那么onPause方法会被执行,而onStop方法则不会被执行
  • onDestroy():该方法在活动被销毁前调用,之后的活动状态将变为销毁状态
  • onRestart():该方法在活动由停止状态变为运行状态之前被调用。

其中onCreate()与onDestroy()、onStart()与onStop()、onPause()与onResume()有对应关系

==================================================================================================

当通过活动A启动活动B时,活动A会处于暂停状态,如果因为系统资源紧张,则活动A会被回收掉,在活动B点击Back后活动A还会正常显示,但并没有调用onRestart方法,会调用onCreate方法,进行重新创建,这时活动A上的数据就不会存在。

Activity中会提供一个onSaveInstanceState()回调方法,该方法可以保证活动被回收前一定会被调用,可以通过该方法解决回收活动前数据不能被保存的情况。

onSaveInstanceState()方法会携带一个Bundle类型的参数。Bundle提供了一系列方法用于保存数据(putString()、putInt()等)。每个保存方法中需要传入两个参数,第一个参数是键,用于后面从Bundle中取值,第二个参数是真正要保存的内容。

猜你喜欢

转载自blog.csdn.net/andanwubian/article/details/81155859