Activity的生命周期运行流程:

 ·当Activity第1次被启动:

    ·onCreate()->onStart()->onResume()

 ·当Activity被遮挡后再次显示:

·onRestart->onStart()->onResume()

 ·当Activity被遮挡:

·onPause()->onStop()

 ·当点击返回(Back)键:

   ·onPause()->onStop()->onDestroy()





详细请參看測试案例:

创建三个Activity

MainActivity

SecondActivity

SmallActivity(小号的Activity。在激活的时候仅仅会遮挡上一个Activity的一部分。即:上一个Activity不会全然被

smallActivity遮挡,所以这样的情况上一个Activity不会onStop())



SmallActivity创建的时候要做特殊调整

在配置文件里调整ctivity的主题为:

 android:theme="@android:style/Theme.Translucent.NoTitleBar" 

在布局文件里调整

把根节点调整大小为以下的大小,

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="200dp"

    android:layout_height="200dp"

    android:background="#207044"

    tools:context=".SmallActivity" >





    <TextView

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="SmallActivity"

        android:textSize="30sp" />





</RelativeLayout>

MainActivity:

  1. package com.example.activity_test;
  2.  
  3. import android.location.GpsStatus.Listener;
  4. import android.os.Bundle;
  5. import android.app.Activity;
  6. import android.content.Intent;
  7. import android.util.Log;
  8. import android.view.Menu;
  9. import android.view.View;
  10. import android.view.View.OnClickListener;
  11.  
  12. public class MainActivity extends Activity {
  13. private final String TAG = "Activity LifeCycle";
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.activity_main);
  18. Log.d(TAG, "MainActivity -> onCreate()");
  19. InnerOnClickListener listener = new InnerOnClickListener();
  20. findViewById(R.id.btn_SecondActivity).setOnClickListener(listener);
  21. findViewById(R.id.btn_Small).setOnClickListener(listener);
  22.  
  23. }
  24.  
  25. private class InnerOnClickListener implements OnClickListener{
  26.  
  27. @Override
  28. public void onClick(View v) {
  29. // TODO Auto-generated method stub
  30. switch (v.getId()) {
  31. case R.id.btn_SecondActivity:
  32. startActivity(new Intent(getApplicationContext(),SecondActivity.class));
  33.  
  34. break;
  35. case R.id.btn_Small:
  36. startActivity(new Intent(getApplicationContext(),SmallActivity.class));
  37. break;
  38.  
  39. default:
  40. break;
  41. }
  42.  
  43. }
  44.  
  45. }
  46.  
  47. @Override
  48. protected void onStart() {
  49. // TODO Auto-generated method stub
  50. super.onStart();
  51. Log.d(TAG, "MainActivity -> onStart()");
  52. }
  53. @Override
  54. protected void onResume() {
  55. // TODO Auto-generated method stub
  56. super.onResume();
  57. Log.d(TAG, "MainActivity -> onResume()");
  58. }
  59. @Override
  60. protected void onRestart() {
  61. // TODO Auto-generated method stub
  62. super.onRestart();
  63. Log.d(TAG, "MainActivity -> onRestart()");
  64. }
  65. @Override
  66. protected void onPause() {
  67. // TODO Auto-generated method stub
  68. super.onPause();
  69. Log.d(TAG, "MainActivity -> onPause()");
  70. }
  71. @Override
  72. protected void onStop() {
  73. // TODO Auto-generated method stub
  74. super.onStop();
  75. Log.d(TAG, "MainActivity -> onStop()");
  76. }
  77. @Override
  78. protected void onDestroy() {
  79. // TODO Auto-generated method stub
  80. super.onDestroy();
  81. Log.d(TAG, "MainActivity -> onDestroy()");
  82. }
  83.  
  84. }

SecondActivity:

  1. package com.example.activity_test;
  2.  
  3. import android.os.Bundle;
  4. import android.app.Activity;
  5. import android.util.Log;
  6. import android.view.Menu;
  7.  
  8. public class SecondActivity extends Activity {
  9. private final String TAG = "Activity LifeCycle";
  10.  
  11. @Override
  12. protected void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.activity_second);
  15. Log.e(TAG, "SecondActivity -> onCreate()");
  16. }
  17. @Override
  18. protected void onStart() {
  19. // TODO Auto-generated method stub
  20. super.onStart();
  21. Log.e(TAG, "SecondActivity -> onStart()");
  22. }
  23. @Override
  24. protected void onResume() {
  25. // TODO Auto-generated method stub
  26. super.onResume();
  27. Log.e(TAG, "SecondActivity -> onResume()");
  28. }
  29. @Override
  30. protected void onRestart() {
  31. // TODO Auto-generated method stub
  32. super.onRestart();
  33. Log.e(TAG, "SecondActivity -> onRestart()");
  34. }
  35. @Override
  36. protected void onPause() {
  37. // TODO Auto-generated method stub
  38. super.onPause();
  39. Log.e(TAG, "SecondActivity -> onPause()");
  40. }
  41. @Override
  42. protected void onStop() {
  43. // TODO Auto-generated method stub
  44. super.onStop();
  45. Log.e(TAG, "SecondActivity -> onStop()");
  46. }
  47. @Override
  48. protected void onDestroy() {
  49. // TODO Auto-generated method stub
  50. super.onDestroy();
  51. Log.e(TAG, "SecondActivity -> onDestroy()");
  52. }
  53. }

SmallActivity:

  1. package com.example.activity_test;
  2.  
  3. import android.os.Bundle;
  4. import android.app.Activity;
  5. import android.util.Log;
  6. import android.view.Menu;
  7.  
  8. public class SmallActivity extends Activity {
  9. private final String TAG = "Activity LifeCycle";
  10.  
  11. @Override
  12. protected void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.activity_small);
  15. Log.i(TAG, "SmallActivity -> onCreate()");
  16. }
  17. @Override
  18. protected void onStart() {
  19. // TODO Auto-generated method stub
  20. super.onStart();
  21. Log.i(TAG, "SmallActivity -> onStart()");
  22. }
  23. @Override
  24. protected void onResume() {
  25. // TODO Auto-generated method stub
  26. super.onResume();
  27. Log.i(TAG, "SmallActivity -> onResume()");
  28. }
  29. @Override
  30. protected void onRestart() {
  31. // TODO Auto-generated method stub
  32. super.onRestart();
  33. Log.i(TAG, "SmallActivity -> onRestart() ");
  34. }
  35. @Override
  36. protected void onPause() {
  37. // TODO Auto-generated method stub
  38. super.onPause();
  39. Log.i(TAG, "SmallActivity -> onPause()");
  40. }
  41. @Override
  42. protected void onStop() {
  43. // TODO Auto-generated method stub
  44. super.onStop();
  45. Log.i(TAG, "SmallActivity -> onStop()");
  46. }
  47. @Override
  48. protected void onDestroy() {
  49. // TODO Auto-generated method stub
  50. super.onDestroy();
  51. Log.i(TAG, "SmallActivity -> onDestroy()");
  52. }
  53. }

Activity生命周期的运行流程的更多相关文章

  1. Android Activity生命周期详讲

    管理 Activity 生命周期 通过实现回调方法管理 Activity 的生命周期对开发强大而又灵活的应用至关重要. Activity 的生命周期会直接受到 Activity 与其他 Activit ...

  2. Android体系结构及activity生命周期

    Android的系统架构采用了分层架构的思想,如图1所示.从上层到底层共包括四层,分别是应用程序程序层.应用框架层.系统库和Android运行时和Linux内核 Android的系统架构图    每层 ...

  3. 基础总结篇之一:Activity生命周期

    子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精 ...

  4. Android编程: Activity生命周期和LogCat使用

    学习内容:Activity生命周期和LogCat使用 ====Activity生命周期==== 图示(转载): 创建    onCreate重启    onRestart开始    onStart恢复 ...

  5. [JIT_APP]Activity生命周期相关的7个方法

    先发一张安卓官方文档里面的Activity生命周期图解 下面在对这7个生命周期内相关的方法做一些简单的介绍 OnCreate() 当Activity被创建的时候,会自动运行该方法.该方法做一些初始化动 ...

  6. 基础总结篇之中的一个:Activity生命周期

    子曰:溫故而知新,能够為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就全然掌握,那基本不大可能,所以我们须要常常回过头再细致研读几遍,以领悟到作者的思想精 ...

  7. 转:基础总结篇之一:Activity生命周期

    熟悉javaEE的朋友们都了解servlet技术,我们想要实现一个自己的servlet,需要继承相应的基类,重写它的方法,这些方法会在合适的时间被servlet容器调用.其实android中的Acti ...

  8. 文章之间的基本总结:Activity生命周期

    孔子:温故而知新.它可以作为一个教师.<论语> 同样的学习技巧.对于技术文件或书籍的经典技术,期待再次看到它完全掌握,这基本上是不可能的,所以,我们常常回来几次,然后仔细研究,为了理解作者 ...

  9. 浅谈Android之Activity生命周期

     Activity作为四大组件之一,出现的频率相当高,基本上我们在android的各个地方都能看见它的踪影,因此深入了解Activity,对于开发高质量应用程序是很有帮助的.今天我们就来详细地聊聊Ac ...

随机推荐

  1. 排序代码(python,c++) 及 基本算法复杂度

    0.导语 本节为手撕代码系列之第一弹,主要来手撕排序算法,主要包括以下几大排序算法: 直接插入排序 冒泡排序 选择排序 快速排序 希尔排序 堆排序 归并排序 1.直接插入排序 [算法思想] 每一步将一 ...

  2. Spring中的InitializingBean接口

    InitializingBean接口为bean提供了初始化方法的方式,它只有afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法. 测试程序如下: impo ...

  3. Spring MVC学习总结(7)——Spring MVC整合Ehcache缓存框架

    Ehcache算是当前比较流行的缓存框架,使用缓存可以极大的缓解服务器和数据库的压力,提高访问效率,提高服务器的并发能力.接下来我们看怎么把缓存使用起来. SpringMVC集成Ehcache所需的j ...

  4. ASP.NET-SOAP、UDDI知识点

    1. 什么是SOAP? 答:是简单访问协议.是在分布式环境中,交换信息并实现远程调用的协议.是一个基于XML的协议.使用SOAP,可以不考虑任何传输协议,但通常还是HTTP协议,可以允许任何类型的对象 ...

  5. nyoj 1189 yougth和他的朋友们 (DP)

    题目:pid=1189" target="_blank">nyoj 1189 yougth和他的朋友们 这题目是14年北京赛区的原题.讲题的时候说有三种解法,我们是 ...

  6. 从头认识java-15.3 使用HashSet须要注意的地方

    这一章节我们来讨论一下使用Set的各种实现须要注意的地方. Set接口的经常使用实现类有:HashSet.TreeSet,LinkedHashSet 1.HashSet 大家对于HashSet的印象都 ...

  7. vue 结合 echarts

    http://blog.csdn.net/mr_wuch/article/details/70225364

  8. win32编程 画图

    void cDefense::DrawAll() { HDC hDc = GetDC(m_hWnd);//获取客户区窗口,如果该值为NULL,GetDC则获整个屏幕的窗口. HDC dcMem = C ...

  9. requireJS实现原理分析

    下面requireJS实现的基本思路  项目地址https://github.com/WangMaoling/require var require = (function(){ //框架版本基本信息 ...

  10. localStorage、sessionStorage的区别

    1.localStorage生命周期是永久的, sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了. ...