由一个activity跳转到别一个activity一般生命周期是:
activity1的oncreate->onstart->onresume->onpause,再接着执行activity2的oncreate->onstart->onresume,接着再执行activity1的:onSaveInstanceState->onstop。
如果这时候按返回键的activity2将会出栈执行方法是onpause,接着activit1执行onrestart->onstart->onresume在下来activity2执行onstop->ondestroy。
这是我的源码示列:
这是activity1的代码
package com.ly.study;
import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
public class LandActivity extends Activity {
private final String Tag = "LandActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_land);
Log.d(Tag,"onCreate");
}
@Override
protected void onStart() {
super.onStart();
Log.d(Tag,"onStart");
}
@Override
protected void onResume() {
super.onResume();
Log.d(Tag,"onResume");
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Log.d(Tag,"onSaveInstanceState");
}
@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");
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.d(Tag,"onRestoreInstanceState");
}
//这是一个按钮点击事件的方法
public void onChangeActivity(View view){
Intent intent = new Intent(this,ViewActivity.class);
startActivity(intent);
}
}
这是activity2的代码
package com.ly.study;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class ViewActivity extends Activity {
private final String TAG = "LandActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView mTextView = new TextView(this);
mTextView.setText("我是自定义action并且加了权限的Activity.");
setContentView(mTextView);
Log.d(TAG,"onCreate-1");
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG,"onStart-1");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG,"onResume-1");
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG,"onPause-1");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG,"onStop-1");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG,"onDestroy-1");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(TAG,"onRestart-1");
}
}
下面是logcat输出信息,其中带"-1"的表示第二个activity的信息
04-11 11:28:30.510 21919-21919/? D/LandActivity﹕ onCreate
04-11 11:28:30.510 21919-21919/? D/LandActivity﹕ onStart
04-11 11:28:30.510 21919-21919/? D/LandActivity﹕ onResume
04-11 11:29:42.960 21919-21919/? D/LandActivity﹕ onPause
04-11 11:29:43.030 21919-21919/? D/LandActivity﹕ onCreate-1
04-11 11:29:43.030 21919-21919/? D/LandActivity﹕ onStart-1
04-11 11:29:43.030 21919-21919/? D/LandActivity﹕ onResume-1
04-11 11:29:43.475 21919-21919/? D/LandActivity﹕ onSaveInstanceState
04-11 11:29:43.475 21919-21919/? D/LandActivity﹕ onStop
04-11 11:38:38.230 21919-21919/? D/LandActivity﹕ onPause-1
04-11 11:38:38.260 21919-21919/? D/LandActivity﹕ onRestart
04-11 11:38:38.265 21919-21919/? D/LandActivity﹕ onStart
04-11 11:38:38.265 21919-21919/? D/LandActivity﹕ onResume
04-11 11:38:38.365 21919-21919/? D/LandActivity﹕ onStop-1
04-11 11:38:38.365 21919-21919/? D/LandActivity﹕ onDestroy-1