Activity的生命周期

第一次写博客,写的不好请大家见谅!先说一下我为什么要写博客。一是为了强迫自己进行总结,第二嘛也许如鲁迅所说的:是为了忘却的纪念。说到Android开发必然绕不开四大组件,而Activity可以和用户进行交互,其重要性不言而喻,所以我选择从Activity开始我的Android之旅。本文主要是来探究一下Android的生命周期。

废话就不再说了,这里先贴一下代码。

package com.stom.testactivity;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;


public class MainActivity extends Activity {

    static final String TAG = "Activity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        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 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会经过onCreate()、onStart()、onResume()三个方法,测试结果如下:

图片

这里就可以和用户进行交互了。这时候用户如果打开了一个透明度不为0的Activity或者是Dialog即之前的Activity还是可见的,那么系统就只会执行onPause()这一个方法,此时按下返回键执行onRume()再次得到焦点。

当用户按下Home键的时候会依次执行onPause()、onStop()方法,这时候Activity并没有被杀死,onDestroy()方法没有得到执行,这时候如果重新启动应用程序会依次调用onRestart()、onStart()、onResume()三个方法,不会执行onCreate()方法。

图片

值得一提的是,当具有更高级别的应用程序需要内存时,系统会自动回收处在onPause()和onStop()方法的Activity。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值