




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、onAestarlf)onPausef)onStop()onD&stroyOActivftyis shutdownThe activitycorner torheThe activitycomes to theforegroundActivitystarts此文于2010-08-03被推荐到(7?用血啊虑no longer visibQ我在前面也曾经讲过这方面API ,过于笼统,相信大家看两分钟彻底让你明白Android Activity生命周期(图文)!收藏CSDN首页如何被推荐?大家好,今天给大家详解一下Android中Activity的生命周期,的内容,但是像网上大多数文章一样,
2、基本都是翻译Android了,会有一点点的帮助,但是还不能完全吃透,所以我今天特意在重新总结一下首先看一下Android api中所提供的Activity生命周期图(不明白的,可以看完整篇文章 回头看一下这个图,你会明白的):User navigatesback to th&f Process is ( killed JJrOtherapiplicationsonCrtiaieOonSiano1ron ReswmefAnotheract ,in frontrivitycomes theactivityActivity isrunningActivity其实是继承了Application
3、context这个类,我们可以重写以下方法,如下代码 view plaincopy toclipboardprint?01.public class Activity extends Applicationcontext (02. protected void onCreate(Bundle savedInstanceState);03.04.protected void onStart();05.06.protected void onRestart();07.08.protected void onResume();09.10.protected void onPause();11.11.
4、protected void onStop();13.12.protected void onDestroy();13.public class Activity extends ApplicationContext (protected void onCreate(Bundle savedInstanceState);protected void onStart();protected void onRestart();protected void onResume();protected void onPause();protected void onStop();protected vo
5、id onDestroy();为了便于大家更好的理解,我简单的写了一个Demo,不明白Activity周期的朋友们,可以亲手实践一下,大家按照我的步骤来。第一步:新建一个Android工程,我这里命名为ActivityDemo.第二步修改ActivityDemo.java(我这里重新写了以上的七种方法,主要用Log打印),代码如下:view plaincopy to clipboardprint?01.package com.tutor.activitydemo;02.import android.app.Activity;03.import android.os.Bundle;04.impo
6、rt android.util.Log;05.public class ActivityDemo extends Activity 06.07. private static final String TAG = ActivityDemo;08.09. public void onCreate(Bundle savedInstanceState) 10.super.onCreate(savedInstanceState);11.setContentView(R.layout.main);12.12.Log.e(TAG, start onCreate- );13.15.14.Override15
7、.protected voidonStart() 16.super.onStart();17.Log.e(TAG, start onStart-);18.21.19.Otected voidonRestart() 21.super.onRestart();22.Log.e(TAG, start onRestart);23.27.24.Otected voidonResume() 26.super.onResume();27.Log.e(TAG, start onResume);28.33.29.Otected voi
8、d onPause() 31.super.onPause();32.Log.e(TAG, start onPause);33.39.34.Otected void onStop() 36.super.onStop();37.Log.e(TAG, start onStop);38.45.39.Otected void onDestroy() (41.super.onDestroy();42.Log.e(TAG, start onDestroy- );43.51.44.package com.tutor.activitydemo;import a
9、ndroid.app.Activity;import android.os.Bundle;import android.util.Log;public class ActivityDemo extends Activity (private static final String TAG = ActivityDemo;public void onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState);setContentView(R.layout.main);Log.e(TAG, start onCreate
10、-);Overrideprotected void onStart() (super.onStart();Log.e(TAG, start onStart-);Overrideprotected void onRestart() (super.onRestart();Log.e(TAG, start onRestart- );Overrideprotected void onResume() (super.onResume();Log.e(TAG, start onResume-);Overrideprotected void onPause() ( super.onPause();Log.e
11、(TAG, start onPause-);Overrideprotected void onStop() super.onStop();Log.e(TAG, start onStop-);Overrideprotected void onDestroy() super.onDestroy();Log.e(TAG, start onDestroy-);第三步:运行上述工程,效果图如下(没什么特别的):IS8ffi1:00PM|Activity DemoHello Worfd, ActivityDemo!核心在Logcat视窗里,如果你还不会用Logcat你可以看一下我的这篇文章Log图文详解(
12、Log.v,Log.d,Log.i,Log.w,Log.e), 我们打 开应用 时先后 执行了onCreate()-onStart()-onResume三个方法,看一下LogCat视窗如下:ActivityDemoHello World. ActivityDemo!BACK键:当我们按BACK键时,我们这个应用程序将结束,这时候我们将先后调用onPause()-onStop()-onDestory()三个方法,如下图所示:当我们打开应用程序时,比如浏览器,我正在浏览NBA新闻,看到一半时,我突然想听歌,这时候我们会选择按HOME键,然后去打开音乐应用程序,而当我们按HOME的时候,Activi
13、ty先后执行了onPause()-onStop()这两个方法,这时候应用程序并没有销毁。如下图 所示:HOME键:而当我们再次启动ActivityDemo应用程序时,则先后分别执行了onRestart()-onStart()-onResume()三个方法,如下图所示:这里我们会引出一个问题,当我们按HOME键,然后再进入ActivityDemo应用时,我们的应用的状态应该是和按HOME键之前的状态是一样的,同样为了方便理解,在这里我将ActivityDemo的代码作一些修改,就是增加一个EditText。第四步 修改main.xml布局文件(增加了一个EditText),代码如下:view p
14、laincopy to clipboardprint?01.02.07.12.17.第五步:然后其他不变,运行ActivityDemo程序,在EditText里输入如Frankie字符串(如下图:)这时候,大家可以按一下HOME键,然后再次启动ActivityDemo应用程序,这时候EditText里并没有我们输入的Frankie字样,如下图:这显然不能称得一个合格的应用程序,所以我们需要在Activity几个方法里自己实现,如下第六步所示:第六步修改 ActivityDemo.java 代码如下:view plaincopy to clipboardprint?01.package com.
15、tutor.activitydemo;02.import android.app.Activity;03.import android.os.Bundle;04.import android.util.Log;05.import android.widget.EditText;06.public class ActivityDemo extends Activity (07.08. private static final String TAG = ActivityDemo;09.private EditText mEditText;10.定义一个String类型用来存取我们EditText输
16、入的值11.private String mString;12.public void onCreate(Bundle savedInstanceState) (13.super.onCreate(savedInstanceState);14.setContentView(R.layout.main);15.mEditText = (EditText)findV iewById(R.id.editText);16.Log.e(TAG, start onCreate- );17.18.18.Otected voidonStart() (20.super.onStart(
17、);21.Log.e(TAG, start onStart-);22.23.当按HOME键时,然后再次启动应用时,我们要恢复先前状态24.Otected void onRestart() (26.super.onRestart();27.mEditText.setText(mString);28.Log.e(TAG, start onRestart-);29.31.30.Otected void onResume() (32.super.onResume();33.Log.e(TAG, start onResume- );34.37.35.当
18、我们按HOME键时,我在onPause方法里,将输入的值赋给mString36.Otected void onPause() (38.super.onPause();39.mString = mEditText.getText().toString();40.Log.e(TAG, start onPause-);41.45.42.Otected void onStop() (44.super.onStop();45.Log.e(TAG, start onStop- );46.51.47.Otected void on
19、Destroy()(49.super.onDestroy();50.Log.e(TAG, start onDestroy-);51.57.52.package com.tutor.activitydemo;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.widget.EditText;public class ActivityDemo extends Activity private static final String TAG = ActivityDemo
20、;private EditText mEditText;定义一个String类型用来存取我们EditText输入的值private String mString;public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);mEditText = (EditText)findView ById(R.id.editText);Log.e(TAG, start onCreate-);Overrideprotected void onStart() super.onStart();Log.e(TAG, start onStart-);/当按HOME键时,然后再次启动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第3课《以中国式现代化全面推进中华民族伟大复兴》 《实践是检验真理的唯一标准》(学案)答案【中职专用】高二语文(高教版2023拓展模块下册)
- 提升基本医疗卫生服务能力的策略与实践路径
- 企业愿景与战略制定考题及答案
- 大数据平台的构建与使用试题及答案
- 行政法学考试全面准备试题及答案
- 2023-2025北京初三一模英语汇编:副词
- 高考数学2024年常见知识误区与试题及答案
- 2024-2025德育教育的心得体会(5篇)
- 初中语文跨学科教学的创新方法与实践路径
- 编程中的重构技巧试题及答案
- 房地产质保期内《维修管理办法》
- 施工安全风险分级管控和隐患排查治理监理工作制度
- 【MOOC】房地产管理-华中科技大学 中国大学慕课MOOC答案
- 退休对女性职工抑郁的影响研究
- 设备润滑保养制度(4篇)
- 渤海银行借款合同模板
- 《海尔公司现行绩效考核体系存在的问题及完善对策研究》11000字(论文)
- 肩关节镜术后康复护理
- 企业环保项目激励制度设计
- 深圳2020-2024年中考英语真题复习专题01 语法填空(解析版)
- 2024年大学生电子版三方协议书模板
评论
0/150
提交评论