Android 返回上一个Activity总是执行onCreate

有两个activity,暂且把这两个activity叫A和B。A是主activity,从A跳转到B,然后执行某些操作作finish掉B返回A.就是这么一个过程,可每次返回A都先进入onCreate方法,很是奇怪。难道后台把我的A活动给停掉了?后来经过一番研究发现在,这种情况只在4.0上有问题,那肯定设置有问题。进设置一看果然是,在4.0后的系统上设置-》开发-》不保留活动,有这样一个选项。只要勾选了它,activity一旦离开系统会自己将它清除,应该是用于优化内存或者系统效率的。不勾选它则与4.0之前的版本一样,B活动finish后返回A活动,这时应该进入A的onResume方法。这样一来就可以了。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 中,Activity 的生命周期方法 onResume() 应该在 Activity 可见并且能够与用户交互之前被执行。如果 onResume 方法偶尔不执行,可能是由于以下原因之一: 1. Activity 的生命周期被系统中断或销毁了。例如,当用户旋转设备时,Activity 可能会被销毁并重新创建。在这种情况下,onResume 方法将被调用,但是必须先执行 onCreate 和 onStart 方法。 2. Activity 代码中存在 bug 或阻塞操作。例如,如果您在 onResume 方法中执行长时间运行的操作或阻塞 UI 线程,该方法可能会被延迟或不执行。 3. 系统资源不足。如果系统资源不足,可能会导致 Activity 生命周期的异常中断或延迟。 为了解决这个问题,您可以尝试使用以下方法: 1. 确保 Activity 代码不会阻塞 UI 线程,并在需要长时间运行的操作时使用异步任务或线程池。 2. 检查您的 Activity 是否正确处理了系统中断和销毁事件,并在必要时恢复状态。 3. 检查您的应用程序是否在内存和其他系统资源方面存在问题,并优化代码以减少资源消耗。 另外,如果您使用了 startActivityForResult() 方法启动新的 Activity 并且在新的 Activity 中调用了 setResult() 方法返回结果,则必须在当前 Activity 中重写 onActivityResult() 方法以接收返回结果。如果您未正确处理 onActivityResult() 方法,则可能导致 onResume() 方法不被正确调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值