Android Activity的生命周期详细介绍

所属分类: 软件编程 / Android 阅读数: 32
收藏 0 赞 0 分享

Android Activity的生命周期详细介绍

生命周期描述的是一个类从创建(new出来)到死亡(垃圾回收)的过程中会执行的方法。在这个过程中,会针对不同的生命阶段调用不同的的方法。

       Activity是Android中四大组件之一,是最常见的应用组件,也是用的最多的组件,它能够提供一个界面与用户进行交互。Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:onCreate  onDestory  onStart  onStop  onResume  onPause。这些方法都是两两对应的,onCreate-->创建与onDestory-->销毁;onStart-->可见与onStop-->不可见;onResume-->可编辑(焦点)和onPause-->未获得焦点。最后还有一个方法是onRestart,这个方法在什么时候调用呢?当Activity被onStop后,但是并没有onDestory,即并没有被销毁时,用户重新回到当前Activity时,就调用onRestart方法,这里就不再是调用onCreate方法了。


public class MainActivity extends ActionBarActivity { 
  private final static String TAG = "MainActivity"; 
  @Override 
  // Activity被创建时调用 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Log.e(TAG, "onCreate......."); 
  } 
  @Override 
  // 该状态用户可见,但是用户还不能与之进行交互 
  protected void onStart() { 
    super.onStart(); 
    Log.e(TAG, "onStart......."); 
  } 
  @Override 
  // 该状态是Activity获得用户焦点,用户可以与之进行交互 
  protected void onResume() { 
    super.onResume(); 
    Log.e(TAG, "onResume......."); 
  } 
  @Override 
  //与onResume对应,当Activity失去焦点时调用 
  protected void onPause() { 
    super.onPause(); 
    Log.e(TAG, "onPause......."); 
  } 
  @Override 
  //与onStart对应,当Activity不可见时调用 
  protected void onStop() { 
    super.onStop(); 
    Log.e(TAG, "onStop......."); 
  } 
  @Override 
  //与onCreate对应,当Activity被销毁时调用 
  protected void onDestroy() { 
    super.onDestroy(); 
    Log.e(TAG, "onDestroy......."); 
  } 
  @Override 
  //Activity从后台重新回到前台调用 
  protected void onRestart() { 
    super.onRestart(); 
    Log.e(TAG, "onRestart......."); 
  } 
} 

       Activity的完整生命周期:oncreate-->onstart-->onresume-->onpause-->onstop-->ondestory。用户在点击返回键的时候,Activity会销毁,这时Activity先是不可编辑,再是不可见,最后被销毁。而当用户点击home键的时候,即表示退回到桌面,这时的Activity并不会被销毁,所以这里现实不可编辑,再是不可见,这时并不会调用onDestory方法被销毁,此时再点击进入该应用,会调用onRestart方法,不再是调用Activity,然后再是调用onStart,onResume。

       下面是Activity的生命周期图:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多精彩内容其他人还在看

android byte[] 和short[]转换的方法代码

这篇文章主要介绍了android byte[] 和short[]转换的方法代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android获取应用程序大小的方法

这篇文章主要介绍了Android获取应用程序大小的方法,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android获取其他包的Context实例代码

这篇文章主要介绍了Android获取其他包的Context实例代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android放大镜的实现代码

这篇文章主要介绍了Android放大镜的实现代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android 读取Properties配置文件的小例子

这篇文章主要介绍了Android 读取Properties配置文件的小例子,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android通讯录开发之删除功能的实现方法

这篇文章主要介绍了Android通讯录开发之删除功能的实现方法,有需要的朋友可以参考一下
收藏 0 赞 0 分享

使用ViewPager实现android软件使用向导功能实现步骤

现在的大部分android软件,都是使用说明,就是第一次使用该软件时,会出现向导,可以左右滑动,然后就进入应用的主界面了,下面我们就实现这个功能
收藏 0 赞 0 分享

android在异步任务中关闭Cursor的代码方法

android在异步任务中如何关闭Cursor?在我们开发应用的时候,很多时候会遇到这种问题,下面我们就看看代码如何实现
收藏 0 赞 0 分享

Android自定义桌面功能代码实现

android自定义桌面其实很简单,看一个例子就明白了
收藏 0 赞 0 分享

android将图片转换存到数据库再从数据库读取转换成图片实现代码

有时候我们想把图片存入到数据库中,尽管这不是一种明智的选择,但有时候还是不得以会用到,下面说说将图片转换成byte[]数组存入到数据库中去,并从数据库中取出来转换成图像显示出来
收藏 0 赞 0 分享
查看更多