2.5 Activity生命周期

时间:2016-01-25 19:13:15   收藏:0   阅读:241

先说一下我们上面运行的程序,当用户在手机上看到显示的内容(如:2.2 音乐播放示例),其中内容部分在Android开发中都需要一个应用组件来实现,这个组件叫做Activity。大家可以这样子去理解Activity,它就是完成手机屏幕内容的显示。 在学习Android开发时,理解并掌握Activity的生命周期很重要。例如:当手机屏幕内容从一个界面切换到另一个界面,这就需要从一个Activity切换到另一个Activity,其中他们是如何运行的,这就需要理解Activity的生命周期。

先给一个Google官方的图解图

技术分享

测试Activity生命周期,见下面的程序代码

package com.android;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class LifeCycleActivity extends Activity {
    private static final String TAG = "LifeCycleActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.v(TAG, "onCreate Called");
        
        Button btn1 = (Button) findViewById(R.id.btn1);
        btn1.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                /* Intent实现Activity与Activity之间的切换 */
                Intent intent = new Intent(LifeCycleActivity.this, TargetActivity.class);
                startActivity(intent);
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.v(TAG, "onDestroy Called");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.v(TAG, "onPause Called");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.v(TAG, "onRestart Called");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.v(TAG, "onResume Called");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.v(TAG, "onStart Called");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.v(TAG, "onStop Called");
    }
    
}
package com.android;

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 TargetActivity extends Activity {
    private static final String TAG = "TargetActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.target);
        
        Button btn2 = (Button) findViewById(R.id.btn2);
        btn2.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(TargetActivity.this, LifeCycleActivity.class);
                startActivity(intent);
            }
        });
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.v(TAG, "onDestroy Called");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.v(TAG, "onPause Called");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.v(TAG, "onRestart Called");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.v(TAG, "onResume Called");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.v(TAG, "onStart Called");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.v(TAG, "onStop Called");
    }

}

上面两个Activity,其中LifeCycleActivity为APP的主运行程序,而TargetActivity需要LifeCycleActivity来调用才能运行。当然上面的两段代码有几个关注点需要解释一下

注意:查看Activity生命周期需要重写Activity中的方法。重写方法请参照上面的图片

有了上面Activity生命周期的流程图,我们先给大家总结一下Activity生命周期的几个过程

文章内容来自:国信安刘阳

原文:http://www.cnblogs.com/cdgxa/p/5158059.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!