文档章节

Android Activity生命周期

QGlaunch
 QGlaunch
发布于 2015/06/17 16:48
字数 668
阅读 60
收藏 1
分十种情况讨论

第一,正常启动Activity A,输出结果如下:

第二,从ActivityA跳到ActivityB,并且ActivityB全屏。即ActivityA被ActivityB完全完全覆盖,输出结果如下:

第三,在第二种的情况下,从ActivityB返回到ActivityA,输出结果如下:

第四,从ActivityA跳到ActivityB,并且ActivityB非全屏。即ActivityA没有被ActivityB完全完全覆盖,输出结果如下:

第五,在第四种的情况下,从ActivityB返回到ActivityA,输出结果如下: 

第六,在第一种情况下,点击home键,输出结果如下:

第七,在第六种的情况下,长按home键盘,从任务管理器中调出ActivityA,输出结果如下:

第八,在第一种情况下,点击电源键,输出结果如下:

第九,在第八种的情况下,在打开电源键回到ActivityA,输出结果如下:

第十,退出ActivityA,输出结果如下:

          在对上述十种情况讨论完,可能觉得有点复杂,其实一点都不复杂,在梳理一下。首先最容易发现的是onCreate和onDestroy从头到尾都只执行了一次。onCreate在一个活动最先开始启动的时候执行了一次,onDestroy在活动结束关闭的时候执行了一次。另外可以发现除了在第四五两种情况下,其余情形的结果都相同,离开活动A,则A一次执行onPause和onStop,并且返回A的时候,一次执行onRestart、onStart和onResume。于是可以得出如下结论。只要不是在A进入到非全屏的其它活动中,则A执行onPause和onStop,反之只执行一个onPause,从其它活动返回,A执行onRestart、onStart和onResume,反之执行onResume。

          在测试四五两种情况的时候,只要在AndroidManifest.xml中队ActivityB的节点中添加如下一行代码:

          android:theme="@android :style/Theme.Dialog"

附活动ActivityA代码:

[java] view plaincopy

  1. package com.yuxianglong.view;  

  2.   

  3. import android.app.Activity;  

  4. import android.content.Intent;  

  5. import android.os.Bundle;  

  6. import android.util.Log;  

  7. import android.view.View;  

  8. import android.widget.Button;  

  9.   

  10. /** 

  11.  *  

  12.  * @ClassName: ActivityA 

  13.  * @Description: 对Activity生命周期的测试,重载了onCreate,onStart,onResume, 

  14.  *               onStop,onPause 

  15.  *               onDestroy,onRestart七个方法 

  16.  * @author yuxianglong 

  17.  * @date 2013-7-9 上午9:09:22 

  18.  *  

  19.  */  

  20. public class ActivityA extends Activity {  

  21.   

  22.     private Button button;  

  23.     private String Tag = "yuxlong2010";  

  24.   

  25.     @Override  

  26.     protected void onCreate(Bundle savedInstanceState) {  

  27.         super.onCreate(savedInstanceState);  

  28.         Log.d(Tag, "I'm  onCreate");  

  29.         setContentView(R.layout.activity_a);  

  30.         button = (Button) findViewById(R.id.button);  

  31.         button.setOnClickListener(new View.OnClickListener() {  

  32.               

  33.             @Override  

  34.             public void onClick(View v) {  

  35.                 // TODO Auto-generated method stub  

  36.                 startActivity(new Intent(ActivityA.this,ActivityB.class));  

  37.             }  

  38.         });  

  39.     }  

  40.   

  41.     @Override  

  42.     protected void onStart() {  

  43.         // TODO Auto-generated method stub  

  44.         super.onStart();  

  45.         Log.d(Tag, "I'm  onStart");  

  46.     }  

  47.   

  48.     @Override  

  49.     protected void onResume() {  

  50.         // TODO Auto-generated method stub  

  51.         super.onResume();  

  52.         Log.d(Tag, "I'm  onResume");  

  53.     }  

  54.   

  55.     @Override  

  56.     protected void onStop() {  

  57.         // TODO Auto-generated method stub  

  58.         super.onStop();  

  59.         Log.d(Tag, "I'm  onStop");  

  60.     }  

  61.   

  62.     @Override  

  63.     protected void onDestroy() {  

  64.         // TODO Auto-generated method stub  

  65.         super.onDestroy();  

  66.         Log.d(Tag, "I'm  onDestroy");  

  67.     }  

  68.   

  69.     @Override  

  70.     protected void onRestart() {  

  71.         // TODO Auto-generated method stub  

  72.         super.onRestart();  

  73.         Log.d(Tag, "I'm  onRestart");  

  74.     }  

  75.   

  76.     @Override  

  77.     protected void onPause() {  

  78.         // TODO Auto-generated method stub  

  79.         super.onPause();  

  80.         Log.d(Tag, "I'm  onPause");  

  81.     }  

  82. }  


本文转载自:http://blog.csdn.net/yuxlong2010/article/details/9278155

共有 人打赏支持
QGlaunch
粉丝 4
博文 76
码字总数 12568
作品 0
朝阳
私信 提问
【Android学习总结】之Activity:深入理解、体验Activity的生命周期

【本博客内的文章是本人的学习笔记总结,如有错误请各位批评指正,谢谢!欢迎加入群285077071讨论】 关于Activity的生命周期的学习,我将从以下几个方面入手来全面认识: 一、什么是生命周期...

kinbos
06/26
0
0
浅析:横竖屏切换时候Activity的生命周期

曾经遇到过一个面试题,让你写出横屏切换竖屏Activity的生命周期。现在给大家分析一下他切换时具体的生命周期是怎么样的: 1、新建一个Activity,并把各个生命周期打印出来 2、运行Activity,...

红豆与绿豆
2015/11/09
0
0
Android知识点回顾之Activity基础

Activity生命周期 Activity的生命周期包括onCreate(),onRestart(),onStart(),onResume(),onPause(),onStop(),onDestroy()。其相互转化的过程如下图所示。左边的图是单个Activity的生命周期回...

星泉毅
2017/11/19
0
0
Service的生命周期与Activity生命周期区别

碰到一面试题 简述activity/service生命周期? 组件的生命周期 应用程序组件都有一个生命周期,从响应Intent的Android实例开始到这个实例被销毁。在这期间,他们或许有效或许无效,有效时或许...

xiahuawuyu
2012/07/24
0
0
Activity 初步(大部分翻译自SDK)

(内容:如何创建、使用activity; activity生命周期。) Activity Activity 是一个为用户提供交互接口的组件,每个activity都会有一个window来显示自己的界面。 应用可以由多个互相“弱关联...

wilsonchan
2012/11/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

阿里云建站

阿里云自营建站 没想到阿里云已经切入这块市场了。可以用拖动的方式来建站的模式,真的还是6.

miaojiangmin
22分钟前
2
0
linux系统top命令:virt,res,shr详解

VIRT:virtual memory usage 虚拟内存 1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等 2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用...

刘祖鹏
28分钟前
1
0
day154-2018-11-21-英语流利阅读-待学习

快手网红发明家:百万粉丝 vs 零销量 雪梨 2018-11-21 1.今日导读 “我做了一个‘雷神锤’的斜挎包,你看这里可以打开,里面可以装手机、卫生纸、钱包,觉得轻的话可以放一些砖头。咱们把它背...

飞鱼说编程
35分钟前
8
0
图灵奖得主华人高徒发布AI芯片!64位RISC-V、高度可编程,低功耗

作为RISC-V架构下的旗手玩家,睿思芯科自然希望通过产品展现出RISC-V可编程架构的巨大潜力。 https://mbd.baidu.com/newspage/data/landingshare?context=%7B%22nid%22:%22news_917924603675...

whoisliang
35分钟前
2
0
xcode 10 缺少 libstdc++6.0.9 解决方案

image.png 本方案基于xcode10正式版操作,其它版本请自行验证! 苹果在XCode10中移除了libstdc++(libstdc++.6、libstdc++6.0.9)库。 项目解决方法:删除libstdc++(libstdc++.6、libstdc++6....

壹峰
39分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部