在Android中学习活动LifeCycle时,我对这两种方法感到困惑。我试着分别实现这两种方法,并且工作得很好。那这两对双胞胎有什么区别?
发布于 2020-04-18 18:16:49
onPostResume:
在活动恢复完成时调用(在调用活动的{@link #onResume}之后)。应用程序通常不会实现此方法;系统类打算在应用程序恢复代码运行后进行最终设置。
它可以做以下的事情
它将确保屏幕对用户是可见的,并将完成活动的最终设置。
删除消息队列中任何带有代码“什么”的挂起的消息。
检查所有片段是否恢复,并将控制器的FragmentManager管理的所有片段移动到恢复状态。
对控制器的FragmentManager管理的片段执行任何挂起的操作。
如果你检查它的生命周期,把它按下面的方式工作
onResume() -活性
onResume() -片段检查第三点,如前所述
onPostResume() -活动请参阅此处:Activity life cycle methods : onPostResume significance
发布于 2020-04-18 18:21:03
onResume()
protected void onResume()
在onRestoreInstanceState(Bundle)
、onRestart()
或onPause()
之后调用,以便您的活动开始与用户交互。这是活动变得活跃并准备接受输入的指示。它位于活动堆栈的顶部,对用户是可见的。
在Build.VERSION_CODES.Q之前的平台版本上,这也是尝试打开独占访问设备或访问单例资源的好地方。从Build.VERSION_CODES.Q开始,系统中可以同时出现多个恢复的活动,因此应该使用onTopResumedActivityChanged(布尔值)。
派生类必须调用此方法的超类实现。如果不这样做,就会引发异常。
如果重写此方法,则必须调用超类实现。
onPostResume()
当活动恢复完成时(在调用了protected void onPostResume()
之后)调用onResume()
。应用程序通常不会实现此方法;系统类打算在应用程序恢复代码运行后进行最终设置。
派生类必须调用此方法的超类实现。如果不这样做,就会引发异常。
如果重写此方法,则必须调用超类实现。
https://stackoverflow.com/questions/61293970
复制相似问题