Activity在运行时会受到一些突然事件的影响,例如:你正在使用一个Activity,突然来了一个电话,这是你的应用就要具备处理这些突发事件的能力,要处理这些突发事件,就要用到Activity的生命周期。
Activity有三种状态:运行状态,暂停状态,停止状态。
当从一种状态转变到另一种状态时,会调用以下保护方法来通知这种变化:
void onCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestory()
代码完成之后应添加一个过滤器,监测应用所调用的方法的变化。
MainActivity.java
public class MainActivity extends Activity {
private static String TAG="MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(TAG,"onCreate()");
}
public void onPauseActivity(View v) {
startActivity(new Intent(this,PauseActivity.class));
}
public void onStopActivity(View v) {
startActivity(new Intent(this,StopActivity.class));
}
@Override
protected void onDestroy() {
Log.i(TAG,"onDestroy()");
super.onDestroy();
}
@Override
protected void onPause() {
Log.i(TAG,"onPause()");
super.onPause();
}
@Override
protected void onRestart() {
Log.i(TAG,"onRestart()");
super.onRestart();
}
@Override
protected void onResume() {
Log.i(TAG,"onResume()");
super.onResume();
}
@Override
protected void onStart() {
Log.i(TAG,"onStart()");
super.onStart();
}
@Override
protected void onStop() {
Log.i(TAG,"onStop()");
super.onStop();
}
}
PauseActivity .java
public class PauseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pause);
}
StopActivity .java
public class StopActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stop);
}
}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="打开我会使当前Activity处于暂停状态"
android:onClick="onPauseActivity"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="打开我会使当前Activity处于停止状态"
android:onClick="onStopActivity"/>
</LinearLayout>
另外还需在清单文件中配置:
<activity
android:name="com.example.activitylife.PauseActivity"
android:label="@string/title_activity_pause"
android:theme="@android:style/Theme.Dialog" >
</activity>