Android:同一App不同Activity间跳转踩过的坑

出现的坑

app开发过程中,我们自定义了activity的堆栈管理,这样就很方便控制activity的进栈、出栈,以及activity间的跳转。这种做法用了很长时间一直没有问题,突然有一天,测试人员跟我说“登录界面,输入密码进行登录操作,抓包发现登录接口是成功的,但是界面没有跳转,以前都是正常的,不知道现在为什么不能跳转了”。
这个坑就出现了:同一个app,不同activity间跳转,从第一个activity正常跳转(startActivity)到第二个activity,第一个activity就被onDestroy了,这是为什么呢?

填坑过程

我一听,第一反应就是在自己的测试机上验证此问题是否存在,最终结果当然是不存在的。
接下来,我就用那个测试人员的手机进行调试,通过debug以及打印日志(见截图)发现activity A跳转到activity B时,A被destroy了,我一下子就愣住了,这不符合常理啊!根本就不符合activity的生命周期啊!难道是不同手机的rom在这一块动了手脚?按理说,手机厂商不可能去强制改变activity的生命周期,这背离了android系统设计的原理(从activity A正常跳转到activity B,A应该处于onStop状态,而不应该被onDestrory了)。接下来就在网上查阅相关资料,有人说可能是用户手机设置了“后台不保留活动”。于是,我就打开那部有问题的手机,查看是否存在这个问题,结果发现,果然是这个原因,关闭这个开关即可(注意:一般手机出厂时,这个开关肯定是关闭的,如果手动打开,就会影响整个系统所有app的activity生命周期,到时出现的问题会让你抓狂)。

非正常现象的日志截图:

这里写图片描述

正常现象的日志截图:

这里写图片描述

这里写图片描述

一点感悟

在平时,不管是工作还是生活中,碰到一些问题,很多人可能第一反应就是如何回避它,不理睬。其实,我们换个角度想想,出现问题,是在让我们进步,如果你回避,就是不想进步,所以,我们应该分析问题、找出原因、解决问题、总结问题。这样,我们就能在人生的道路上越走越平坦。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值