Andoid activity 生命周期
今天介绍一下Android中最常用的组件activity的生命周期。当activity处于Android应用中运行时,它的活动状态由Android以Activity栈的形式管理。当前活动的Activity处于栈顶。随着不同应用的运行,每个Activity都有可能从活动状态转入非活动状态,也可能从非活动状态转入活动状态。
归纳起来Activity大致会经过如下四个状态。
活动状态:当前Activity位于栈顶,用户可见,可以获得焦点。
暂停状态:其他Activity处于栈顶,该Activity依然可见,只是不能获得焦点。
停止状态:该Activity不可见,失去焦点。
销毁状态:该Activity结束,或Activity所在的Dalvik进程被结束。
下图显示了Activity生命周期及相关回调方法。
从图中可以看出,在Activity的生命周期中,如下方法会被系统回调。
onCreate:创建Activity时被回调。
onStart:启动Activity时被回调。
onRestart:重新启动Activity时被回调。
onResume:恢复Activity时被回调。
onPause:暂停Activity时被回调。
onStop:停止Activity时被回调。
onDestroy:销毁Activity时被回调。
下面演示一下,演示代码:
public class Lifecycle extends Activity
{
final String TAG = "--CrazyIt--";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//输出日志
Log.d(TAG , "-------onCreate------");
Button bn = (Button)findViewById(R.id.bn);
//为bn按钮绑定事件监听器
bn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View source)
{
//结束该Activity
Lifecycle.this.finish();
}
});
}
@Override
public void onStart()
{
super.onStart();
//输出日志
Log.d(TAG , "-------onStart------");
}
@Override
public void onRestart()
{
super.onRestart();
//输出日志
Log.d(TAG , "-------onRestart------");
}
@Override
public void onResume()
{
super.onResume();
//输出日志
Log.d(TAG , "-------onResume------");
}
@Override
public void onPause()
{
super.onPause();
//输出日志
Log.d(TAG , "-------onPause------");
}
@Override
public void onStop()
{
super.onStop();
//输出日志
Log.d(TAG , "-------onStop------");
}
@Override
public void onDestroy()
{
super.onDestroy();
//输出日志
Log.d(TAG , "-------onDestroy------");
}
}
将Activity设置为程序的入口Activity,当程序启动并执行该Activity,在LogCat窗口输出:
当按下主页键,返回到桌面,当前该Activity将失去焦点且不可见,但该Activity并未被销毁,只是进入停止状态。此时的LogCat输入:
再次找到该应用并启动它,将可以看到下面的输出:
如果用户单击返回键,该Activity将会结束自己,LogCat输出:
这就是我对Activity生命周期的一些认识,希望能够帮助到大家。
注:本人参考了疯狂Android讲义。
Andoid activity 生命周期的更多相关文章
- [转]: 两分钟彻底让你明白Android Activity生命周期(图文)!
转自:http://blog.csdn.net/android_tutor/article/details/5772285 大家好,今天给大家详解一下Android中Activity的生命周期,我在前 ...
- Activity生命周期(深入理解)
今天看到一篇大神总结Activity的文章,内容甚为详细,特此转载http://www.cnblogs.com/lwbqqyumidi/p/3769113.html Android官方文档和其他不少资 ...
- Android Activity生命周期
从android api文档摘抄出来的activity生命周期图如下: Activity有如下四种状态 a.活动状态 activity处于屏幕前台,获取到了焦点可以和用户进行交互,同一时刻只有一个a ...
- Android Activity生命周期详讲
管理 Activity 生命周期 通过实现回调方法管理 Activity 的生命周期对开发强大而又灵活的应用至关重要. Activity 的生命周期会直接受到 Activity 与其他 Activit ...
- android Activity生命周期(设备旋转、数据恢复等)与启动模式
1.Activity生命周期 接下来将介绍 Android Activity(四大组件之一) 的生命周期, 包含运行.暂停和停止三种状态,onCreate.onStart.onResume.o ...
- android开发------Activity生命周期
这几天工作比较忙,基本没有什么时间更新播客了. 趁着今晚有点时间,我们来简单说一下什么是Activity生命周期和它们各阶段的特征 什么是生命周期 在还没有接触android开发的时候,听到有人说Ac ...
- 安卓activity生命周期
相信不少朋友也已经看过这个流程图了,也基本了解了Activity生命周期的几个过程,我们就来说一说这几个过程. 1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法, ...
- Activity生命周期 onCreate onResume onStop onPause (转)
Android应用开发提高系列(6)——Activity生命周期 onCreate 和 onResume 在程序启动时候都会启动, 所有有些需要在onCreate onResume中都要实现的功能,之 ...
- Android总结篇系列:Activity生命周期
Android官方文档和其他不少资料都对Activity生命周期进行了详细介绍,在结合资料和项目开发过程中遇到的问题,本文将对Activity生命周期进行一次总结. Activity是由Activit ...
随机推荐
- 网络性能测试工具iperf详细使用图文教程【转载】
原文:http://blog.163.com/hlz_2599/blog/static/142378474201341341339314/ 参考:http://man.linuxde.net/iper ...
- 转:C/C++中,空数组、空类、类中空数组的解析及其作用
转自:http://blog.sina.com.cn/s/blog_93b45b0f01015s95.html 我们经常会遇到这些问题: (1)C++中定义一个空类,他们它的大小(sizeof) 为多 ...
- CentOS查看内核版本,位数,版本号 (zhuan)
http://blog.csdn.net/painsonline/article/details/7668824 ******************************************* ...
- Mybatis关联查询,查询出的记录数量与数据库直接查询不一致,如何解决?
<select id="findUserInfoListForMap" resultMap="BaseResultMap"> SELECT ...
- dede顶级栏目直接显示内容
点击网站栏目管理,增加顶级栏目 在弹出的增加窗口中,填上栏目名称,其它的如果没有特殊的要求可直接默认 点击常规选项旁边的高级选项,并且在列表模板中,将其改一个文件名,这个文件名就是后面需要使用到的文件 ...
- 元素过滤器(Element Filters)
元素过滤器可以同选择器一起使用, 从一堆候选元素中进行筛选.它们当前仅使用于’name’元素选择器.过滤器看起来更像是选择器,也就是:filterType=argument所支持的元素过滤器为:val ...
- C#抓包
抓包過程中發現頁面<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" v ...
- hdu----(2222)Keywords Search(ac自动机)
Keywords Search Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- 149. Max Points on a Line *HARD* 求点集中在一条直线上的最多点数
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. ...
- java.util 类 TreeSet<E>
java.lang.Object≥ java.util.AbstractCollection<E> ≥ java.util.AbstractSet<E> ≥ java.util ...