一、简介
本篇讲述Activity的生命周期,并且用LogCat记录下生命周期的过程。
二、实验平台
编译器:Eclipse IDE for Java Developers(Version: Luna Service Release 2 (4.4.2))
三、版权声明
博主:甜甜的大香瓜
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.net/feilusia
联系方式:[email protected]
技术交流QQ群:127442605
四、简介Activity的生命周期
每个 Activity 实例都有生命周期。
在 Activity 的生命周期内,进行“运行、暂停和停止”三种状态转换。
每次状态发生转换时,都有一个 Activity 方法将状态改变的消息通知activity。
注:不需要我们自己去调用 onCreate等生命周期方法,Android会适时去调用它们。我们只需要修改它们的处理事件即可。
五、简介日志信息Log
Log类似单片机的串口工具,可以打印出调试信息。
本篇使用的方法是:public static int d(String tag, String msg)
其中,d代表debug,用来标识日志信息的级别。
tag参数标识日志信息的来源,一般会以类名为值的TAG常量传入。比如TAG=feilusiaActivity。
msg参数标识日志的具体内容。
六、实验步骤
1、代码修改
1)新增一个TAG常量
这个TAG一般是跟类名一样,这里我自定义为feilusia。
2)添加onCreate方法的日志输出代码
3)添加其他生命周期中的方法的日志输出代码
@Override public void onStart(){ super.onStart(); Log.d(TAG, "onStart() called"); } @Override public void onPause(){ super.onPause(); Log.d(TAG, "onPause() called"); } @Override public void onResume(){ super.onResume(); Log.d(TAG, "onResume() called"); } @Override public void onStop(){ super.onStop(); Log.d(TAG, "onStop() called"); } @Override public void onDestroy(){ super.onDestroy(); Log.d(TAG, "onDestroy() called"); }默认工程中没有以上的生命周期的方法代码,但是它们都是存在的。只是在这里添加log代码。
注:这里的@Override会要求编译器保证当前类具有准备覆盖的方法。也就是说如果onStart编译出错,编译器在这里会报错。
2、使用LogCat
1)打开LogCat
打开Window → Show View → Other...菜单,展开Android文件夹找到并选择LogCat,然后单击OK按钮。
2)添加过滤器
给这个过滤器起一个名字,然后将之前的TAG名字放到by Log Tag中。随后logcat中就只会有TAG为feilusia的信息了。
3、实验结果
1)打开一个应用+按返回键
打开一个应用时:
看到log信息为下面的流程:
按返回键退出应用时:
看到log信息为下面的流程:
2)打开一个应用+按主屏幕键+重新打开这个应用
发现按“主屏幕”键比按“返回”键少了“onDestroy()”方法,说明这个应用并没有被销毁。
再长按主屏幕键选中刚才的应用
发现这里也只有两步,并不需要重新onCreate,因为之前并没有销毁。