看网上大家在谈生命周期时只谈开始的那个Activity很少谈到启动的那个Activity.
下面谈一下第二个Activity是对话框时,生命周期的执行情况。
首先,写第一个Activity源码如下:
package com.example.activity_05;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button bt = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("first_onCreate");
bt = (Button)findViewById(R.id.button1);
bt.setOnClickListener(new MyButtonListener());
}
class MyButtonListener implements OnClickListener
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
System.out.println("first_onStart");
super.onStart();
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
System.out.println("first_onRestart");
super.onRestart();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
System.out.println("first_onPause");
super.onPause();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
System.out.println("first_onResume");
super.onResume();
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
System.out.println("first_onStop");
super.onStop();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
System.out.println("first_onDestroy");
super.onDestroy();
}
}
然后,是第二个Activity源码如下:
package com.example.activity_05;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class SecondActivity extends Activity {
private Button bt = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
System.out.println("Second_onCreate");
bt = (Button)findViewById(R.id.button2);
bt.setText("Back");
bt.setOnClickListener(new MybuttonListener());
}
class MybuttonListener implements OnClickListener
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//结束此Activity
finish();
}
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
System.out.println("Second_onStart");
super.onStart();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
System.out.println("Second_onResume");
super.onResume();
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
System.out.println("Second_onRestart");
super.onRestart();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
System.out.println("Second_onPause");
super.onPause();
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
System.out.println("Second_onStop");
super.onStop();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
System.out.println("Second_onDestroy");
super.onDestroy();
}
}
最后注意在Manifest修改SecondActivity的Theme为:
android:theme="@android:style/Theme.Dialog" >
开始启动程序时的函数:
启动第二个Activity时的函数调用:
结束第二个Activity返回到第一个Activity的函数调用:
结束第一个Activity:
详见E://Android_ll/Activity_05