activity之间跳转生命周期浅析

来源:互联网 发布:杨贵妃 山口百惠 知乎 编辑:程序博客网 时间:2024/04/30 14:16


由一个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



0 0
原创粉丝点击