安卓四大组件之一 -------------------Activity_生命周期

1.Activity的生命周期.
Activity的生命周期具体的有7个生命周期:
onCreate():当启动新的Activity的时候被调用,可以理解成新的活动被创建的时候调用.
onStart():启动当前Activity时被回调,也就是当一个Activity变为显示时被调用.
onReStart():重新启动Activity时被回调,该方法总是在onStart方法之后执行.
onPause():暂停Activity时被回调执行.(该方法需要被非常快的执行,因为直到该方法执行完毕之后,下一个Actvity才能恢复,在该方法中,通常用于持久保存数据.)
onResume():当Activity由暂停状态恢复为活动状态时被调用.调用该方法后,该Activity位于Activity的栈顶.(该方法总是在onPause()方法之后执行).
onStop():停止Activity时被回调,
onDestory():销毁Activity时被回调.(有时候用Finish好像就可以.)
相信大家也经常看到这个流程图了.
上图,就是Activity完整的生命周期.相信大家也看过这张图.
一般来说的,在Activity中,可以根据程序的需要来重写相应的方法,通常情况下,onCreate()和onPause()方法是最常用的,一般来说会很常见.

下面给大家简单介绍下 Activity的4个重要状态.
(1)活动状态:当前的Activity,位于Activity栈顶,用户可见,并且可以获得焦点.
(2)暂停状态:失去焦点的Activity,仍然可见,但是在内存低的情况下,不能被系统killed(杀死).也就是说onPause在内存使用低的情况下,进程是不被杀死的.这样就会很好了解这个图了.
(3)停止状态:该Activity被其他Activity所覆盖,不可见,但是它仍然保存所有的状态和信息.当在内存使用低的情况下,该进程也会被杀死.
(4)销毁状态:该Activity结束,或Activity所在的Dalvik进程结束.

这里大家一定会对ondestory()和finish()有疑问,为什么这两个都是销毁,有什么区别呢?
1.finish() 结束进程时,是把整个Activity结束,直接把Activity从栈顶移除,这样会导致有一些Activity占用的资源没有得到及时的释放.
2.ondestory():本义是系统销毁Activity实例在内存中,所占据的空间,是Activity生命周期的最后一步,如果执行了,所占的资源进行回收,当重新启动这个Activity,就必须得重写onCreate()方法.

package com.lanou.day02activity;

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

public class MainActivity extends Activity {
    /**
     * onCreate方法,生成Activity界面时调用,生成布局,布局初始化.
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 为当前Activity设置布局
        // 为当前活动设置布局,为当前界面设置布局
        // 使用setContentView方法绑定布局,注意R引包.
        setContentView(R.layout.activity_main);
        Log.i("lanou", "----onCreate----");
    }

    /**
     * 启动一个Activity时调用,界面可见
     */
    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
        Log.i("lanou", "------onStart----------");
    }

    /**
     * 重新启动Activity时使用
     * */
    @Override
    protected void onRestart() {
        // TODO Auto-generated method stub
        super.onRestart();
        Log.i("lanou", "-------onRestart----------");

    }

    /**
     * Activity 重新回到前端时调用,可交互
     */
    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        Log.i("lanou", "-------onResume---------");
    }

    /**
     * 调用Activity时暂停
     */

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        Log.i("lanou", "-------onPause---------");
    }
/**
 * Activity停止时调用
 * */
    @Override
    protected void onStop() {
        // TODO Auto-generated method stub
        super.onStop();
        Log.i("lanou", "------onStop----------");
    }

    /**
     * Activity销毁时调用
     */
    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        Log.i("lanou", "-------onDestory---------");
    }

    // Button的点击事件方法
    // 我们在这里实现的功能是让他跳转去下一个界面
    public void toNextActivity(View v) {
            // Intent 意图
        // 参数 A.this,B.class
        // 从A界面去B界面
        Intent intent = new Intent(MainActivity.this,NextActivity.class);
        //启动Activity
        startActivity(intent);
    }
}

以上是Activity的所有的生命周期,这时候你可以设置一下界面跳转,用Log打印数据,判断一下具体的Activity的生命周期.

<><><><><><><><><><><><><><><><><><><><><><><><><><><>
注明:本文为作者原创,如有转载请及时私信联系.
作者本意是使用博客,来把这些知识储存在博客上,希望能够帮助才进入这个领域的新人.
而且作者本身是一个菜鸟,靠整理知识点,顺便做一下回顾.如果有上面记录不合理的地方,希望大家纠正.有问题的话,可以及时私信.
<><><><><><><><><><><><><><><><><><><><><><><><><><>重点内容

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值