[Android]_[ACtivity生命周期]
2015-11-23 00:20
423 查看
android的activity生命周期如下图所示:
1. 开始Activity:在这个阶段依次执行3个生命周期方法:onCreate()、onStart()和onResume()。
2. Activity失去焦点:如果在Activity获得焦点的情况下进入其他的Activity,这时当前的Activity会失去焦点。在这一阶段,会依次执行onPause()和onStop()方法。
3. Activity重新获得焦点:如果Activity重新获得焦点,会依次执行 3个生命周期方法:onRestart()、onStart()和onResume()。
4. 关闭Activity:当Activity被关闭时系统会依次执行3个生命周期方法:onPause()、onStop()和onDestroy()。
注意:当点击返回键的时候会调用onDestroy(),若希望点击返回键达到home键的效果就需要重写返回键,如下:
@Override
public void onBackPressed() {
Intent home = new Intent(Intent.ACTION_MAIN);
home.addCategory(Intent.CATEGORY_HOME);
startActivity(home);
}
现在通过一个例子来了解它的生命周方法在四个阶段的用法:
七个生命周期方法如下,它们的作用见下面示例方法注释中
protected void onCreate(Bundle savedInstanceState)
protected void onStart()
protected void onResume()
protected void onPause()
protected void onStop()
protected void onRestart()
protected void onDestroy()
示例代码:
package com.liu.activity;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MyActivity extends Activity {
private static final String lifeTag = "Activity生命周期";
//当Activity第一次被创建时调用,我们可以在这进行初始化操作
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d(lifeTag,"---->oncreate()被执行");
}
//onStart()方法在Activity开始被执行时调用,它紧随onCreate()方法之后调用
protected void onStart() {
super.onStart();
Log.d(lifeTag,"---->onStart()被执行");
}
//onResume()方法在Activity即将与用户交互时调用
protected void onResume() {
super.onResume();
Log.d(lifeTag,"---->onResume()被执行");
}
//当Activity从stopped状态启动时会调用onRestart(),后面总是调用onStart()方法
protected void onRestart() {
super.onRestart();
Log.d(lifeTag,"---->onRestart()被执行");
}
//在一个Activity启动另一个Activity时调用,它通常被用来持久化数据、停止动画或其他耗费资源的动作,
//下一个Activity必须等待这个方法返回后在启动,所以在这里做过多的操作
protected void onPause() {
super.onPause();
Log.d(lifeTag,"---->onPause()被执行");
}
//onStop()方法在一个新的Activity启动、其他的Activity切换到前台、当天Activity被销毁时都会被调用
protected void onStop() {
super.onStop();
Log.d(lifeTag,"---->onStop()被执行");
}
//Activitybe被销毁时调用
protected void onDestroy() {
super.onDestroy();
Log.d(lifeTag,"---->onDestroy()被执行");
}
}结果:
启动程序调用的方法如下:
当按下拨号键使activity失去焦点调用的方法如下:
当按下返回键使Activity获得焦调用的方法如下,:
关闭Avtivity时调用的方法如下:
1. 开始Activity:在这个阶段依次执行3个生命周期方法:onCreate()、onStart()和onResume()。
2. Activity失去焦点:如果在Activity获得焦点的情况下进入其他的Activity,这时当前的Activity会失去焦点。在这一阶段,会依次执行onPause()和onStop()方法。
3. Activity重新获得焦点:如果Activity重新获得焦点,会依次执行 3个生命周期方法:onRestart()、onStart()和onResume()。
4. 关闭Activity:当Activity被关闭时系统会依次执行3个生命周期方法:onPause()、onStop()和onDestroy()。
注意:当点击返回键的时候会调用onDestroy(),若希望点击返回键达到home键的效果就需要重写返回键,如下:
@Override
public void onBackPressed() {
Intent home = new Intent(Intent.ACTION_MAIN);
home.addCategory(Intent.CATEGORY_HOME);
startActivity(home);
}
现在通过一个例子来了解它的生命周方法在四个阶段的用法:
七个生命周期方法如下,它们的作用见下面示例方法注释中
protected void onCreate(Bundle savedInstanceState)
protected void onStart()
protected void onResume()
protected void onPause()
protected void onStop()
protected void onRestart()
protected void onDestroy()
示例代码:
package com.liu.activity;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MyActivity extends Activity {
private static final String lifeTag = "Activity生命周期";
//当Activity第一次被创建时调用,我们可以在这进行初始化操作
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d(lifeTag,"---->oncreate()被执行");
}
//onStart()方法在Activity开始被执行时调用,它紧随onCreate()方法之后调用
protected void onStart() {
super.onStart();
Log.d(lifeTag,"---->onStart()被执行");
}
//onResume()方法在Activity即将与用户交互时调用
protected void onResume() {
super.onResume();
Log.d(lifeTag,"---->onResume()被执行");
}
//当Activity从stopped状态启动时会调用onRestart(),后面总是调用onStart()方法
protected void onRestart() {
super.onRestart();
Log.d(lifeTag,"---->onRestart()被执行");
}
//在一个Activity启动另一个Activity时调用,它通常被用来持久化数据、停止动画或其他耗费资源的动作,
//下一个Activity必须等待这个方法返回后在启动,所以在这里做过多的操作
protected void onPause() {
super.onPause();
Log.d(lifeTag,"---->onPause()被执行");
}
//onStop()方法在一个新的Activity启动、其他的Activity切换到前台、当天Activity被销毁时都会被调用
protected void onStop() {
super.onStop();
Log.d(lifeTag,"---->onStop()被执行");
}
//Activitybe被销毁时调用
protected void onDestroy() {
super.onDestroy();
Log.d(lifeTag,"---->onDestroy()被执行");
}
}结果:
启动程序调用的方法如下:
当按下拨号键使activity失去焦点调用的方法如下:
当按下返回键使Activity获得焦调用的方法如下,:
关闭Avtivity时调用的方法如下:
相关文章推荐
- Android开发规范基础
- 11.22 java,android,classLoder,插件式开发,类的热替换,android热更新原理
- [Android]_[常用ADB命令]
- Android开发之listview 的使用中Item获取焦点的处理
- Android 开发之自定义滑动开关
- Android开发之细说ListView上拉加载,下拉刷新过程
- ViewPager如下效果你研究过吗?
- android 开发环境 ubuntu 12.04
- 使用SAX解析文档 --《第一行代码Android》学习笔记
- 市场or市值-Android和IOS浅谈
- android 实践项目三
- Android实践项目汇报(三)
- Android学习笔记之ListView(1)
- Android中的五大布局
- [Android]_[程序获取root权限]
- 树莓派入门(二)
- Android4.4深入浅出之SurfaceFlinger总体结构
- android style举例
- Android之自定义组件
- Android Bundle的使用及与Intent传递参数区别