活动生命周期回调是否有可能在执行所有代码之前被中断?回调可以中断另一个吗?
https://developer.android.com/guide/components/activities/activity-lifecycle
在本文档中,建议不要在onPause中执行繁重的工作,因为它执行“非常简短”,由谁来控制?怎么样?即使onPause尚未完成执行,系统也会调用下一个生命周期回调吗?
答案 0 :(得分:0)
文档建议onResume()/onPause()
快速执行以提供更好的用户体验,因为这些方法经常被调用。 Android活动回调始终按顺序执行。它们可能只会被未捕获的异常中断,从而终止整个应用程序。
答案 1 :(得分:0)
那些调用将主要影响UI(以及onCreate,onCreateView),如果它们花费很长时间来完成其代码,则用户肯定会知道它。
假设您的onResume()方法中有此
OnResume(){ super.onResume; updateView(); }
某种标准,这通常是在片段或活动“恢复”之前发生的事情。
如果您的updateView();需要2秒钟才能完成,要耐心加载数据或创建对象,即2秒钟是UI处于“冻结”状态,并且用户无法使用该应用程序,或者可能会误认为是“损坏”
如果理论上onPause()的场景相同,那么应用程序中的“冻结”时间也就是2秒
最好尽快完成“ updateView()”(本质上是onResume和onPause方法),以使用户不会注意到应用程序中的任何“滞后”。