Activity生命周期

监视Activity状态变化

Activity提供了一系列的回调方法(onCreate(),onStart(),onResume等),当Activity状态发生变化时,相应的回调方法就会被调用。我们可以用日志来查看调用情况

Log.v(String tag,String msg);  //verbose  冗余消息

Log.d(String tag,String msg);  //debug   调试消息

Log.i(String tag,String msg);   //info    普通消息

Log.w(String tag,String msg);  //warn   警告消息

Log.e(String tag,String msg);  //error  错误消息

 

Activity生命周期中的一些回调方法

方法

描述

是否可“销毁

下一步调用

onCreate()

Activity在第一次创建时调用,在这里进行初始化设置:创建Views,将数据绑定到lists等。此方法还提供了Bundle参数,如果Activity之前存在被冻结的状态,那么此状态将在Bundle中提供。如果Activity是第一次被创建,此方法后将会调用onStart(),如果Activitystopped后重新启动,则调用onRestart()

NO

onStart()

onRestart()

onStart()

Acitvity对用户即将可见时调用。如果该Activity在前台,其后调用onResume();如果Activity被隐藏了,则调用onStop()

No

onStop()

onResume()

onRestart()

Activitystopped状态重新启动时调用,其后总是调用onStart()

No

onStart()

onResume()

Activity将要与用户交互时调用此方法,此时ActivityActivity栈的栈顶,已经可以接受用户的输入,其后调用onPause()

No

onPause()

onPause()

当系统要resume一个其他的Activity时调用,这个方法被用来持久化数据、停止动画或其他占用CPU资源的东西。由于下一个Activity在这个方法返回之前不会resumed,所以实现这个方法时代码执行要尽可能快。

如果Activity冲洗回到前台时调用onResume(),如果对用户不可见则调用onStop()

Yes

onResume()

onStop()

onStop()

当另一个Activity恢复并遮盖住此Activity,导致其对用户不在可见时调用。一个新Activity启动,其他Activity被切换到前台、当前Activity被销毁时都可能发生这种情况。

Activity重新回到前台与用户交互时调用onRestart(),如果Activity将退出则调用onDestory()

Yes

onRestart()

onDestory()

onDestory()

Activity被销毁前所调用的最后一个方法,当进程终止时会出现这种情况(对Activity之间调用finish()方法或者系统为了节省空间而临时销毁此Activity的实例,可以通过isFinishing()的返回值来区分这2种情况)如果有一个Progress Dialog在线程中转动,请在onDestory里把它cancel掉,不然等线程结束的时候,调用Dialogcancel方法可能会抛出异常

Yes

 

例如:

 

package org.test.lifestyle;

 

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

 

public class Test extends Activity {

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

    private static final String TAG="[Helloworld]";

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        Log.v(TAG,"onCreate");

    }

    @Override

    protected void onDestroy() {

       // TODO Auto-generated method stub

       super.onDestroy();

       Log.v(TAG,"onDestory");

    }

    @Override

    protected void onPause() {

       // TODO Auto-generated method stub

       super.onPause();

       Log.v(TAG,"onPause");

    }

    @Override

    protected void onRestart() {

       // TODO Auto-generated method stub

       super.onRestart();

       Log.v(TAG, "onRestart");

    }

    @Override

    protected void onResume() {

       // TODO Auto-generated method stub

       super.onResume();

       Log.v(TAG,"onResume");

    }

    @Override

    protected void onStart() {

       // TODO Auto-generated method stub

       super.onStart();

       Log.v(TAG,"onStart");

    }

    @Override

    protected void onStop() {

       // TODO Auto-generated method stub

       super.onStop();

       Log.v(TAG,"onStop");

    }

   

}

 

DDMS状态

的

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值