Activity 生命周期之跳转 Activity
来源:互联网 发布:美白补水面膜 知乎 编辑:程序博客网 时间:2024/05/16 17:03
最近一段时间,在项目之中遇到一个问题,就是下载模块,当有下载成功的MV时,要在内部存储数据中,下载数+1,然后对应地方在Activity的Onstart()方法中,从数据库中取出来数字显示更新的未读下载数,但是当用户处于下载管理页面时,当用户下载成功,退出时候应该将未读数在OnDestory()方法中清零,
结果问题就来了,返回上层activity时,OnStart()方法取出来的数字发现并没有清零,我明明在OnDestory()方法清零了呀,这是肿么回事儿,打断点跑的方法显示,Activity的Onstart()方法在下载管理页面的OnDestory()方法之后执行了,这个问题本来很简单,就是一个Activity的生命周期的问题,而众多教程中,却没有告诉我们两个Activity做跳转时,他们两个的生命周期,交叉到一起是怎么跑的。下面,给大家讲解一下
首先,我设置一个ActivityA,然后写一个ActivityB,ActivityA中有个button。点击让ActivityA跳转Activity,在他们生命周期中,打印出来生命周期的方法名。大家请看结果
02-13 10:49:49.345: E/ActivityA(15391): onCreate02-13 10:49:49.345: E/ActivityA(15391): onStrat02-13 10:49:49.345: E/ActivityA(15391): onResume02-13 10:49:51.868: E/ActivityA(15391): onPause02-13 10:49:51.918: E/ActivityB(15391): oncreate02-13 10:49:51.918: E/ActivityB(15391): onStrat02-13 10:49:51.918: E/ActivityB(15391): onResume02-13 10:49:52.268: E/ActivityA(15391): onStop
这说明,A中的OnStop方法,是在B完全创建完毕中才调用的。接下来,我们按下屏幕的返回键,看看有什么结果
02-13 10:52:23.089: E/ActivityB(15391): onPause02-13 10:52:23.109: E/ActivityA(15391): onStrat02-13 10:52:23.109: E/ActivityA(15391): onResume02-13 10:52:23.440: E/ActivityB(15391): onStop02-13 10:52:23.440: E/ActivityB(15391): onDestory
B中的OnStop()以及OnDestory()方法是在A重新回到前台之后,才调用的,所以,当我们在B中的OnDestory()中调用方法之前,A中的OnStart()方法就重新回到前台了,也就是,在这种情况下,我们在与刚好位于其栈下方的Activity及时性要求很高的情况下,我们不能将B中很多数据的处理放在OnDestory()方法执行。
在这种情况下,Google通常给予我们一种方案,就是onActivityResult(int requestCode, int resultCode, Intent data) 方法,友情提示,OnActivityResult方法,也是有很多坑的,比如很多时候接受不到这个方法,这与 Activity 的加载模式(launchMode)有关,加载的Activity必须为标准模式。具体方法使用,请查找相关代码。
0 0
- Activity 生命周期之跳转 Activity
- Activity的生命周期,activity跳转到activity
- activity跳转生命周期
- Activity跳转生命周期变化
- activity 跳转生命周期研究
- activity跳转生命周期
- 两个Activity跳转生命周期
- activity跳转时的生命周期
- android activity跳转 和 生命周期
- activity跳转时的生命周期
- activity之间跳转生命周期浅析
- Activity跳转时生命周期跟踪
- Activity界面跳转及其生命周期
- activity跳转的生命周期调用
- activity跳转时的生命周期
- android之旅12 activity之间的跳转与生命周期
- Android之路 1.activity跳转、传值、生命周期、活动
- Android 之 Activity 生命周期
- 1044. Shopping in Mars (25)
- Vim 文件比较
- 自定义alert提示框
- 使用tomcat maven插件过程中的一些问题
- c++
- Activity 生命周期之跳转 Activity
- GridView
- ZKW费用流 模板
- 【Android开发经验】Android开发相关的Blog推荐——跟随大神的脚步才能成长为大神
- 《高性能Javascript》 学习笔记 web性能优化(二)
- 天声人語 20150212
- 完美实现远程访问内网的QNAP NAS - 花生棒的应用
- 日经春秋 20150212
- 开发工具的使用及配置