活动生命周期回调没有结束执行?

时间:2018-10-04 14:50:13

标签: android activity-lifecycle

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

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

在本文档中,建议不要在onPause中执行繁重的工作,因为它执行“非常简短”,由谁来控制?怎么样?即使onPause尚未完成执行,系统也会调用下一个生命周期回调吗?

2 个答案:

答案 0 :(得分:0)

文档建议onResume()/onPause()快速执行以提供更好的用户体验,因为这些方法经常被调用。 Android活动回调始终按顺序执行。它们可能只会被未捕获的异常中断,从而终止整个应用程序。

答案 1 :(得分:0)

那些调用将主要影响UI(以及onCreate,onCreateView),如果它们花费很长时间来完成其代码,则用户肯定会知道它。

假设您的onResume()方法中有此

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

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

如果您的updateView();需要2秒钟才能完成,要耐心加载数据或创建对象,即2秒钟是UI处于“冻结”状态,并且用户无法使用该应用程序,或者可能会误认为是“损坏”

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

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