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 ...
随机推荐
- 正则表达式使用(Js、Java)
Js中全局替换,需要在最后加上g(global),并且使用//包围起来 1.全局替换字符+ 和 只替换第一个字符+ alert("2014+03-22++aaaa".replace ...
- Hello,Akka
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.com/dreamhead-logs/235916459.html 只要稍微了解过一些Scala, ...
- samba服务器搭建
为实现windows与linux资源共享,搭建一个samba服务器:这个我也是探索了一段时间. 找到一篇写得比较清楚的博客: http://yangxuejun.blog.51cto.com/6239 ...
- opencl初探-sobel检测
sobel检测的C版本,neon和GPU的时间比较. Platform: LG G3, Adreno 330 ,img size 3264x2448 sobel: C code neon GPU 73 ...
- requestAnimationFrame兼容性扩展
/** * requestAnimationFrame兼容性扩展,两方面工作: * 1.把各浏览器前缀进行统一 * 2.在浏览器没有requestAnimationFrame方法时将其指向setTim ...
- on delete cascade 和on update cascade
这是数据库外键定义的一个可选项,用来设置当主键表中的被参考列的数据发生变化时,外键表中响应字段的变换规则的.update 则是主键表中被参考字段的值更新,delete是指在主键表中删除一条记录:on ...
- golang为LigerUI编写简易版本web服务器
package main import ( "io/ioutil" "log" "net/http" "os" ) va ...
- HTML4 和 HTML5 的10个关键区别
HTML5是HTML标准的下一个版本.越来越多的程序员开始HTML5来构建网站.如果你同时使用HTML4和HTML5的话 ,你会发现用HTML5从头构建,比从HTML4迁移到HTML5要方便很多.虽然 ...
- 修复iPhone的safari浏览器上submit按钮圆角bug
今天在公司写了一个登录页面效果,让我碰到一个怪异的问题——"表单中的input type=submit和input type=reset按钮在iPhone的safari浏览器下圆角有一个bu ...
- 在Access中批量调用SQL语句
access的SQL视图一次只能执行一条SQL语句,那么在VBA中调用或许可以简便一些 例如: Public Sub 批量()Dim strsql As String strsql = " ...