package com.gaoo.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;
/**
* Activity的生命周期
* 一个界面上有两个按钮 一个是正常普通的按钮 另一个是 对话框风格的按钮
*
* 当MainActivity第一次被创建时会依次执行onCreate()、 onStart()和onResume()方法,
* 当单击普通的按钮 执行的方法 onPause 和 onStop()方法,
* 再次 点击返回按钮 会执行 onRestart()方法,之后又 会依次执行onStart()和onResume()方法,
*
* 再点击第二个按钮,启动DialogActivity 只会 onPause()方法得到了执行,
* 再次 按下 Back键返回 MainActivity也应该只有 onResume()方法会得到执行,
* 最后 点击返回键 退出程序 依次会执行onPause()、onStop()和onDestroy()方法.
*/
public class MainActivity extends Activity {
public static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
String tempData = savedInstanceState.getString("data_key");
Log.d(TAG, tempData);
}
Log.d(TAG, "onCreate");
Button startNormalActivity = (Button) findViewById(R.id.start_normal_activity);
Button startDialogActivity = (Button) findViewById(R.id.start_dialog_activity);
if (startNormalActivity != null) {
startNormalActivity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, NormalActivity.class);
startActivity(intent);
}
});
}
if (startDialogActivity != null) {
startDialogActivity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, DialogActivity.class);
startActivity(intent);
}
});
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
String tempData = "只是一些临时数据";
outState.putString("data_key",tempData);
}
@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");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(TAG, "onRestart");
}
}
对话框Activity 继承 Activity
<activity android:name=".DialogActivity"
android:theme="@android:style/Theme.Holo.Light.Dialog">
</activity>