Android-保你能记住的生命周期教程

栏目: IOS · Android · 发布时间: 5年前

内容简介:主要的

先看一下官方给出的图:

Android-保你能记住的生命周期教程

总结一下上图

主要的 回调方法 包括:

onCreate 、onStart 、onResume 、onPause 、onStop 、onDestroy 、onRestart

给出一张方便记忆的图:

Android-保你能记住的生命周期教程

这些方法都是两两对应的:

1.onCreate创建与onDestroy销毁;

2.onStart可见与onStop不可见;

3.onResume可编辑(即焦点)与onPause;

4.onRestart:在Activity被onStop后,但是没有被onDestroy,在再次启动此Activity时就调用onRestart(而不再调用onCreate)方法;如果被onDestroy了,则是调用onCreate方法。

保存数据必须在onPause方法中进行

通过 滑动卡片 删除应用杀死进程的时候,或者通过 应用管理 杀死进程的时候,只有栈里面的第一个没有销毁的activity执行ondestroy方法,一般都是mainActivity,其它activity均不执行ondestroy。

Android什么时候只会调用onPause()而不会调用onStop()?

onPause是失去焦点,onStop是不可见时调用,只要Activity失去了焦点还可见就会只调用onPause不调用onStop,常见是translucent(半透明) activity挡住当前Activity。

网上很多人说弹出Dialog时只会调用onPause()而不会调用onStop(),其实是错误的说法,原因是必须使Activity离开前台才会调用onPause,也即是退出栈顶。但是Dialog并不会使Activity离开栈顶。所以答案应该是此时既不会调用onPause()也不会调用onStop()。

onStop不调用的场景

我们知道,Activity A打开B,流程是这样的:

 onCreateA – onStartA – onResumeA – onPauseA – onCreateB – onStartB – onResumeB – onStopA 

然后按返回到A的流程是这样的:

 onPauseB – onStartA – onResumeA – onStopB – onDestoryB 

但是如果在B打开的生命周期方法onResume中直接finish当前的B,那么此时返回到A的流程就会缺少onStartA。原因是因为此时对于系统来说A一直是可见的。

 onPauseB – onResumeA – onStopB – onDestoryB 

热度: 3


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

着陆页:获取网络订单的关键

着陆页:获取网络订单的关键

谢松杰 / 电子工业出版社 / 2017-1-1 / CNY 55.00

着陆页是用户点击广告后看到的第一个页面,是相关产品和服务的商业模式与营销思想的载体,是实现客户转化的关键。本书从“宏观”和“微观”两个层面对着陆页的整体框架和局部细节进行了深入的讨论,既有理论和方法,又有技术与工具,为读者呈现了着陆页从策划到技术实现的完整知识体系,帮助读者用最低的成本实现网站最高的收益。 谢松杰老师作品《网站说服力》版权输出台湾,深受两岸读者喜爱。本书是《网站说服力》的姊妹......一起来看看 《着陆页:获取网络订单的关键》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试