通过android日志监控activity的生命周期

华宰 发布于 2011/09/08 13:18
阅读 1K+
收藏 1

创建一个简单的应用程序,用于考察android的activity的生命周期,需要覆盖多个Activity类的方法。这些方法是android根据事件将Activity置于某个生命周期状态时调用。

image

Activity代码:

package com.easymorse.activity;

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

public class ActivityTest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.i("ActivityTest", "call onCreate");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i("ActivityTest", "call onStart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.i("ActivityTest", "call onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i("ActivityTest", "call onPause");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i("ActivityTest", "call onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i("ActivityTest", "call onDestroy");
    }
}

代码中使用了android提供的日志通用工具类,Log。使用它的静态方法可以很容易的打印出日志,其中第一个字符串参数表示日志的标签,用于过滤日志,第二个参数是日志正文的字符串。日志API的JAVADOC见:

http://developer.android.com/intl/zh-CN/reference/android/util/Log.html

查看日志的办法是,在android SDK的tools目录下执行:

adb logcat

这样会在命令行中打印出设备或者模拟器的全部日志。比较乱,如果只需要查看上面代码的日志,可执行:

adb.exe logcat -s ActivityTest:I

这里的-s参数用于接收特定标签的日志信息,后面跟的:I则表示只接收Information级别以上的信息。

在windows下如果查看中文日志信息,会出现乱码,原因估计是android下是utf-8,而windwos下是GBK:

image

针对上面代码观察到的日志情况是,当关闭屏幕时,会调用onPause,点击menu按钮后,会调用onResume,这和上面的流程图中的不符,图中的箭头是单向的,有误。

加载中
返回顶部
顶部