`
- 浏览:
1479814 次
-
Android成长之路-Android生命周期例子小解
声明周期图:
Activity从创建到进入运行态所触发的事件
onCreate()-->onStart-->onResume()
从运行态到停止态所触发的事件
onPause()--->onStop()
从停止态到运行态所触发事件
onRestart()-->onStart()--->onResume()
从运行态到暂停态所触发事件
onPause()
从暂停态到运行态所触发事件
onResume()
根据例子来详细的介绍一下它的生命周期的过程(它所调用的方法):
首先先看一下例子:
Java文件有:ActivityLifeCyde.java、SecondLifeCyle.java、ThridLifeCyle.java
Xml布局文件有:main.xml、second.xml、thirid.xml
首先是ActivityLifeCyde.java文件
SecondLifeCyle.java文件中
ThridLifeCyle.java文件中
Main.xml文件中
Second.xml
Thirid.xml文件中
要在AndroidManifest.xml文件中添加两句话
效果显示:
当点击button按钮时
点击button按钮时返回上个界面
点击对话框按钮时出现
当点击退出按钮时
点击取消则返回当前页面,点击确定则退出当前Activity
下面则根据这个例子来解释一下生命周期的调用过程
1、刚把程序运行起来的时候
onCreate()--onStart()--onResume()
2、当点击Button按钮的时候
onPause()--onStop()
也就是说进入另外一个Activity的时候会暂停当前的Activity并且停止
进入到另外一个Activity的时候也会执行1中的过程,当再返回第一个Activity的时候也会执行2中一样的过程
3、点击对话框按钮的时候
onPause()
这个时候只会把这个Activity暂停,因为出现的对话框同样也在这个Activity中,也就是说这个Activity并没有停止,所以他不会调用onStop()这个方法,更不会调用onDestory()消灭这个Activity,也可以理解为当前Activity失去了焦点,就好比一个页面中有两个文本框:文本1和文本2,光标由文本1转到文本2中实际上就是这个过程
4、点击对话框按钮,然后再点击返回键的时候
onPause()--onResume()
当前暂停的Activity在暂停后再次使用的时候会调用onResume()这个方法重新开始这个Activity
5、点击退出按钮,如果点击取消的时候
在这个过程中当前程序的生命周期是没有任何变化的
6、点击退出按钮,如果点击退出按钮的时候
onPause()--onStop()---onDestroy()
退出的话就会把当前的activity结束并销毁掉
7、运行程序,再返回
onCreate()--onStart()--onResume()--onPause()--onStop()---onDestroy()
整个生命周期的调用
8、运行程序,再点击手机键盘中的小房子的那个按钮
onCreate()--onStart()--onResume()--onPause()--onStop()
这个时候Activity是没有被消灭的,只是把它暂停了,主页把这个activity覆盖了,相当于进站
9、在8的基础上再点击进入程序
onRestart()---onStart()---onResume()
把这个activity从暂停的状态重新开始,调用onRestart()这个方法,然后再开始运行
10、长时间点击小房子那个按钮
这个动作是没有执行任何方法,只是回到了主页面
11、在10的基础上,再长时间点击小房子那个按钮回到activity
onRestart()---onStart()---onResume()
然后在ActivityLifeCyde.java文件中添加这两个方法
12、如果在这个时候再点击小房子的那个键
或
按下电源按键(关闭屏幕显示)时
或
长按HOME键,选择运行其他的程序时
onSaveInstanceState()---onPause()--onStop()
其实点击这个键可以理解为强制性的离开当前的activity并没有得到我的同意,在这个时候会执行onSaveInstanceState()这个方法保存当前activity的进度,就好比你在手机上看小说,突然来了一个电话,手机会保存小说的进度,当你接完电话的时候小说会读取你接电话之前的进度
13、在12的基础上再进入这个程序中
onRestart()---onStart()---onResume()
复苏,重新开始
onSaveInstanceState方法和onRestoreInstanceState方法不一定是成对的被调用的,onRestoreInstanceState被调用的前提是,activity确实被系统销毁了
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
文档高清自主研发非最终版。 一直想要整理一下keyguard(锁屏)模块的相关流程,由于各种原因总是没真正着手开始做,一直拖也不是个办法,所以就索性开始了。 这篇内容会比较偏分析,所以闲话就少扯点了。...
NULL 博文链接:https://koda.iteye.com/blog/323289
css :nth-child与:nth-of-type之小解,需要的朋友可以参考下。
UNIX系统下,AWK 使用小解。 (sco 5.0.5下测试通过)
VisualC 实效编程 38 小解霸――VCD典型控制VisualC 实效编程 38 小解霸――VCD典型控制VisualC 实效编程 38 小解霸――VCD典型控制VisualC 实效编程 38 小解霸――VCD典型控制VisualC 实效编程 38 小解霸――VCD...
此工程使用android-support-v4.jar,代码简单易懂,注释详尽,导入eclipse即可查看
小解+优化GUI+最终版小解+优化GUI+最终版小解+优化GUI+最终版小解+优化GUI+最终版小解+优化GUI+最终版小解+优化GUI+最终版小解+优化GUI+最终版小解+优化GUI+最终版
echo命令小解
NULL 博文链接:https://sunfish.iteye.com/blog/1490698
实例35 小解霸――VCD典型控制vc 菜鸟专用,菜鸟课设也是可以用的
HTML标签小解。很简单的讲述。菜鸟适用。
div弹出层position属性小解
VC++ 小解霸 VCD典型播放控制 VC++小解霸――VCD典型播放控制,模仿早期的Windows Media Player播放器,它只能播放DAT格式的文件 ,这种文件是VCD格式,因此这个播放器主要是用来播放VCD的,界面也挺老的,但很经典...
QTP小解.docx 为学习QTP相关知识的一个帮助文件
常见局麻药的相关知识小解PPT课件.pptx
策略路由详细介绍,希望对大家有些帮助,敬请参考,谢谢大家支持!
常见局麻药的相关知识小解PPT学习教案.pptx
vc学习,Invalidate(true),Invalidate(false)2008-08-27 08:13在学一个位图显示程序时,发现了图像显示能不能重绘的问题,当时看了msdn,也在网上看了不少回复。总感觉不是很理解。后来仔细试了一下,有点心得,特写...
科院刘艳老师数字信号处理上机作业小解 涉及卡尔曼 维纳 自适应 谱估计 基本代码 有注释 有解有图