首页 > 解决方案 > 活动生命周期回调没有完成执行?

问题描述

活动生命周期回调是否有可能在执行其所有代码之前被中断?回调可以中断另一个吗?

https://developer.android.com/guide/components/activities/activity-lifecycle

在本文档中,它建议不要在 onPause 中执行繁重的工作,例如,因为它具有“非常简短的执行”,谁来控制它?如何?即使 onPause 尚未完成执行,系统是否会调用下一个生命周期回调?

标签: androidactivity-lifecycle

解决方案


这些调用将主要影响 UI(以及 onCreate、onCreateView),如果它们需要很长时间来完成他们的代码,用户肯定会知道它。

假设你的 onResume() 方法中有这个

OnResume(){ super.onResume; updateView(); }

一些标准的东西,这是在片段或活动“恢复”之前通常发生的事情。

如果你的 updateView(); 需要 2 秒才能完成,因为它正在加载数据或创建对象,即 UI 被“冻结”并且用户无法使用应用程序的 2 秒,或者可能误认为“已损坏”

如果您对 onPause() 有相同的理论场景,那么这也是应用程序中 2 秒的“冻结”时间

最好让“updateView()”(本质上是您的 onResume 和 onPause 方法)尽快完成,这样用户就不会注意到应用程序中的任何“滞后”。


推荐阅读