android的activity的生命周期

1.     Activity 的生命周期相关问题:

Activity 的生命周期介绍?各种操作下,相对应执行了哪些对应的方法?

   经过一个星期对android的具体学习,有了一定了解,有必要对所理解的做一个总结,对今后进一步的掌握android也是种积淀和积累。

Android中, Component(Activity,service和broadcast recervices)的生命周期始于其响应一个Intent请求,终于该Component销毁。在这个期间,Component可能处于激活/未激活,可见/不可见的状态.

   Android的生命周期和普通的程序并不相同,我们只能创建Activity,但并不能想销毁就销毁它,这并不由我们自己控制,而是由Android系统自己控制和管理,这点与J2ME有点类似。(J2ME的Midlet生命周期完全由应用程序管理器控制而不是由系统控制

   一个Activity的全部生命周期由以下方法定义:你可以重写这些方式,当Activity的状态发生改变时可以做一些需要的操作。所有的Activity都是实现OnCreate(Bundle) 来完成一些初始的操作

 

 

 

public class Activity extends ApplicationContext {

     protected void onCreate(Bundle savedInstanceState);

     protected void onStart();

     protected void onRestart();

     protected void onResume();

     protected void onPause();

     protected void onStop();

     protected void onDestroy();

 }

 

以下两幅图,比较清楚得介绍了,Activity的生命周期

 

 

 

接下来,通过以下一段测试的代码,通过打出的Log来看看我们在各种不同的操作下,Activity到底执行了哪些?以及执行顺序?

package com.myandroid.test;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

 

public class AndroidTest extends Activity {

    private static final String TAG = "MyNewLog";

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        Log.e(TAG"onCreate");

    }

   

    public void onStart(){

    super.onStart();

    Log.e(TAG"onStart");

   

    }

    public void onRestart(){

    super.onRestart();

    Log.e(TAG"onRestart");

   

    }

    public void onResume(){

    super.onResume();

    Log.e(TAG"onResume");

   

    }

    public void onPause(){

    super.onPause();

    Log.e(TAG"onPause");

   

    }

    public  void onStop(){

    super.onStop();

    Log.e(TAG"onStop");

   

    }

    public  void onDestroy(){

    super.onDestroy();

    Log.e(TAG"onDestroy");

   

    }

}

1..启动该测试Activity时:

打印顺序:onCreate()->onStart()->onResume()

1.       BACK键:

打印顺序:onPause()->onStop()->onDestroy()

2.       再重新调用该Activity时:

打印顺序:  onCreate()->onStart()->onResume()

3.       HOME键时:

打印顺序: onPause()->onStop() (并没有OnDestroy())

4.       再重新调用该Activity时:

打印顺序:onRestart()->onStart()->onResume()或者

打印顺序:onDestroy()->onCreate()->onStart()->onResume()

activity主要生命周期的方法说明:
onCreate(Bundle savedInstanceState):创建activity时调用。设置在该方法中,还以Bundle的形式提供对以前储存的任何状态的访问!
onStart():activity变为在屏幕上对用户可见时调用。
onResume():activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用的)。
onPause():activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的,也是保护现场,压栈吧!
onStop():activity被停止并转为不可见阶段及后续的生命周期事件时调用。
onRestart():重新启动activity时调用。该活动仍在栈中,而不是启动新的活动。
onDestroy():activity被完全从系统内存中移除时调用,该方法被调用可能是因为有人直接调用Finish()方法或者系统决定停止该活动以释放资源!

PS:activity的生命周期中,只要离开了可见阶段,或者说失去了焦点,activity就很可能被进程终止了!

   通过重写ActivityonSaveInstanceState事件处理函数,你可以使用它的Bundle参数来保存实例的值这个处理函数会在ActivityActive生命周期结束时触发,但仅在它不是显式地结束(即异常结束)。因此,它一般用于确保在单个用户会话中的Active生命周期间Activity状态的一致性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值