在Activity生命周期中,下面的几个方法会被系统
- onCreate(Bundle savedStatus); 创建Activity时被回调,只会被系统调用一次.
- onStart(); 启动Activity时,被调用.
- onRestart();重新启动Activity时 被调用
- onResume();恢复Activity时被回调, onStart()后一个会回调 onResume()方法
- onPause();暂停Activity时被回调
- onStop();停止Activity时被回调.
- onDestroy();销毁Activity时被回调,该方法只会被调用一次.
package com.test.activitylifecycle;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
public static final String TAG = "MainActivity";
Button btnStart, btnClose;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "----onCreate----");
btnStart = (Button) findViewById(R.id.btn_start);
btnClose = (Button) findViewById(R.id.btn_close);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, DialogStyleActivity.class);
startActivity(intent);
}
});
btnClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
@Override
protected void onRestart() {
super.onRestart();
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "---- onStart ----");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "---- onResume ----");
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "---- onPause ----");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "---- onStop ----");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "---- onDestroy ----");
}
}
- 当启动程序的时候将会自动启动并执行该Activity;此时会在控制台打印并执行 onCreate,onStart, onResume, 三个方法
- 点击界面上”启动对话框风格的Activity”按钮后,此时对话框风格的Activity进入前台,此时MainActivity进入”暂停状态”,执行onPause(0方法,但是依然”部分可见”.
- 在当前状态下,点击模拟器右边的返回键,再次返回 MainActivity ,该Activity再次进入运行状态,此时执行的是 onResume() 方法.
- 在当前状态下点击 Home 按键 返回系统桌面,当前Activity将失去焦点且不可见.但该Activity并未被销毁,它进入了”停止”状态,执行了onRestart();onPause();onStop() 方法.
- 再次在模拟器的程序列表中找到该程序,执行了onStart(); onResume();方法
- 然后接着点击 退出按钮,该Activity将会结束自己,将会执行onPause();onStop();onDestroy()方法.
对话框格式的 Activity
package com.test.activitylifecycle;
import android.app.Activity;
import android.os.Bundle;
/**
* 对话框风格的 Activity
*/
public class DialogStyleActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog_style);
}
}
清单文件
设置对话框风格的Activity
<activity android:name=".DialogStyleActivity"
android:theme="@android:style/Theme.Holo.Light.Dialog" />