onResume()和onPostResume)在活动生命周期中有什么区别



在Android中学习活动生命周期时,我对这两种方法感到困惑。我试着分别实现这两个功能,并且运行良好。那么,这两个双胞胎有什么区别?

onResume()

protected void onResume()onRestoreInstanceState(Bundle)onRestart()onPause()之后调用,以便您的活动开始与用户交互。这是活动变为活动并准备接收输入的指示符。它位于活动堆栈的顶部,对用户可见。

在Build.VERSION_CODES.Q之前的平台版本上,这也是尝试打开独占访问设备或访问单例资源的好地方。从Build.VERSION_CODES.Q开始,系统中可以同时有多个恢复的活动,因此应将onTopResumedActivityChanged(布尔值(用于此目的。

派生类必须调用该方法的超级类的实现。如果没有,则会引发异常。

如果重写此方法,则必须调用超类实现

onPostResume()

protected void onPostResume()在活动恢复完成时调用(在调用onResume()之后(。应用程序通常不会实现此方法;它旨在让系统类在应用程序恢复代码运行后进行最终设置。

派生类必须调用该方法的超级类的实现。如果没有,则会引发异常。

如果重写此方法,则必须调用超类实现

onPostResume:

在活动恢复完成时调用(在调用了活动的{@link#onResume}之后(。应用程序通常不会实现此方法;它旨在让系统类在应用程序恢复代码运行后进行最终设置。

它将做以下事情

它将确保屏幕对用户可见,并为活动进行最终设置。

删除消息队列中代码为"what"的任何挂起的消息发布。

检查所有碎片是否恢复,并将控制器的碎片管理器管理的所有碎片移动到恢复状态。

对控制器的FragmentManager管理的Fragments执行任何挂起的操作。

如果你检查它的生命周期虎钳,它的工作原理就像低于

onResume((-活动

onResume((-片段检查第三点,如上所述

onPostResume((-活动请参阅此处:活动生命周期方法:onPostResume重要性

相关内容