Starting an Activity
- Resumed
activity处于前台,并且用户可以与之交互。 - Paused
activity部分被其他activity掩盖,Paused activity无法接收用户输入和执行任何代码。 - Stopped
activity完全被隐藏,对于用户是不可见的,它是处于后台的。当停止时,activity实例和它所有的状态信息比如成员变量都是保持不变的,但是他不能执行任何代码。
Specify Your App‘s Lanucher Activity
- 如何指定activity作为main activity?
你可以在Android manifest file中指定activity作为main activity,AndroidManifes.xml,她在你工程目录的根目录中。
可以在manifest file中使用包含MAIN action和LAUNCHER category的<intent-filter>标签来完成指定main activity。比如:
<activity android:name=".MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Create a New Instance
- 我们应该在onCreate()中进行什么操作?
我们必须在onCreate()方法中进行一些最基本的初始化操作,比如定义用户界面,定义成员变量,以及配置一些U元素。
且onCreate()方法在整个生命周期中只运行一次。
Destroy the Activity
- 我们应该在onDestroy()方法中进行什么操作?
我们需要在onDestroy()方法中杀死在onCreate()中开启的后台线程以及一些长时间运行的资源。
Pausing and Resuming an Activity
Pause Your Activity
- 我们在onPause()中应该进行什么操作?
- 检验activity是否可见;
- 提交未保存的修改,但是应该是用户希望得到永久保存的数据;
- 释放系统资源;
Resume Your Activity
- 在onResume()方法中应该进行什么操作?
我们在此方法中应该重新初始化那些我们在onPause()中释放的组件。
Recreating an Activity
在activity被destroy后,可以通过Bundle对象进行恢复activity;
我们的activity会在每次旋转屏幕的时候被destroyed和recreated,这是因为activity需要重新加载替代的资源(比如布局资源)。
说明:当系统停止你的activity时,会调用onSaveInstanceState()方法保存你想要保存的额外数据。如果你的activity被销毁并重新创建,那么系统将会把这些状态数据传递给onCreate()和onRestoreInstanceState()方法。