92

谁能给我一个onResume()在Android中使用的例子?

另外,如果我想在另一个执行结束时重新启动活动,执行哪个方法 - <code>onCreate() 还是onResume()

如果我想更新数据,我该如何把它放进去onResume()?

4

9 回答 9

138

任何重新启动的 Activity 都会首先执行其onResume()方法。

要使用此方法,请执行以下操作:

@Override
public void onResume(){
    super.onResume();
    // put your code here...

}
于 2013-03-27T12:31:30.190 回答
80

重新启动应用程序将调用OnCreate().

暂停时继续应用程序将调用OnResume(). 来自https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle的官方文档,这里是活动生命周期的图表。

Android 活动生命周期,来自 https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle 上的 https://developer.android.com/images/activity_lifecycle.png

于 2013-03-27T12:26:17.763 回答
28

最好的理解方法是在您的活动中覆盖所有 LifeCycle 方法,并在每个方法中放置一个断点(如果签入模拟器)或一个日志。您将知道何时调用哪个。

就像剧透一样,onCreate()首先被调用,然后如果您通过进入主屏幕或启动另一个活动来暂停活动,则会onPause()被调用。如果操作系统在此期间破坏了活动,onDestroy()则被调用。如果您恢复应用程序并且应用程序已经被销毁,onCreate()将被调用,否则onResume()将被调用。

编辑:我忘了onStop(),它之前被调用过onDestroy()

做我提到的练习,你会有更好的理解。

于 2013-03-27T12:37:35.613 回答
9

以前的大多数答案都很好地解释了如何、为什么以及何时使用,onResume()但我想补充一些关于重新创建你的Activity.

我想知道我是否想在另一个执行 onCreate() 或 onResume() 的方法结束时重新启动活动

答案是onCreate()然而,在决定实际重新创建它时,您应该问自己有多少Activity需要重新创建。如果它是适配器中的数据,比如说一个列表,那么您可以调用notifyDataChanged()adapter重新填充,adapter而不必重绘所有内容。

此外,如果您只需要更新某些views但不是全部,那么调用需要更新invalidate()的(s)可能会更有效。view这只会重绘那些views,并可能让您的应用程序运行得更顺畅。我希望这可以帮助你。

于 2013-03-27T12:50:43.087 回答
6

当您打开应用程序时,它会经历以下状态:onCreate() –> onStart() -> onResume()

当您按下返回按钮并退出应用程序时

onPaused() -> onStop() -> onDestory()

当你按下主页按钮

onPaused() -> 停止()

按下主页按钮后,再次从最近的任务列表中打开应用程序时

onRestart() -> onStart() -> onResume()

从对话框中关闭对话框或返回按钮后

onResume()

如果电话正在响铃并且用户正在使用该应用程序

onPause() -> onResume()

通话结束后

onResume()

当您的手机屏幕关闭时

onPaused() -> 停止()

当您的手机屏幕重新打开时

onRestart() -> onStart() -> onResume()

快乐编码...@Ambilpura

于 2021-03-23T18:34:41.153 回答
5

onResume()是整个活动生命周期中调用的方法之一。onResume()是在任何时候从视图中隐藏活动时调用的对应onPause()项,例如,如果您启动一个隐藏它的新活动。onResume()当隐藏的活动返回到屏幕上查看时调用。

您的问题是询问使用什么方法来重新启动活动。onCreate()在首次创建活动时调用。在实践中,大多数活动通过一系列onPause()onResume()调用在后台持续存在。onRestart()一个活动只有在首先通过调用完全停止onStop()然后恢复生命时才真正“重新启动” 。因此,如果您实际上并没有停止使用onStop()它的活动,那么您很可能会使用onResume().

阅读以上链接中的 android 文档,以更好地了解不同生活方式之间的关系。无论您最终使用哪种生命周期方法,通用格式都是相同的。您必须覆盖标准方法并在注释部分包含您的代码,即您希望活动在该点执行的操作。

@Override
public void onResume(){
 //will be executed onResume
}
于 2013-03-27T12:37:00.660 回答
3

重新查看 Android Activity 生命周期参考。有一张漂亮的图片,表格显示了调用了哪些方法。参考链接google

https://developer.android.com/reference/android/app/Activity.html

于 2013-03-27T12:30:09.683 回答
2

科特林

任何重新启动的 Activity 都会首先执行其 onResume() 方法。

要使用此方法,请执行以下操作:

override fun onResume() {
        super.onResume()
        // your code here
    }
于 2020-05-20T09:53:08.990 回答
1

在活动开始后,重新启动(onRestart() 发生在 onStart() 之前)或暂停(onPause()),onResume() 调用。当 Activity 处于 onResume() 状态时,该 Activity 已准备好供应用用户使用。

我对活动生命周期进行了一些研究,以下是我对这个主题的理解:如果你想在另一个活动的执行结束时重新启动活动(A),可能有几种不同的情况。

  1. 另一个活动 (B) 已暂停和/或停止或销毁,并且活动 A 可能已暂停 (onPause()),在这种情况下,活动 A 将调用 onResume()

  2. 活动 B 已暂停和/或停止或销毁,活动 A 可能由于内存问题已停止 (onStop()),在这种情况下,活动 A 将首先调用 onRestart(),其次是 onStart(),然后是 onResume ()

  3. 活动 B 已暂停和/或停止或销毁,活动 A 已销毁,程序员可以手动调用 onStart() 以先启动活动,然后再调用 onResume(),因为当活动处于销毁状态时,活动已没有开始,这发生在活动被完全删除之前。如果活动被删除,则需要重新创建活动。手动调用 onStart() 我认为这是因为如果活动没有启动并且它被创建,onStart() 将在 onCreate() 之后被调用。

如果要更新数据,请创建一个数据更新函数并将该函数放在 onResume() 中。或者在 onResume() 里面放一个 loadData 函数

最好借助 Activity 生命周期图来理解生命周期。

于 2019-12-02T01:23:04.723 回答