如何使用onResume()?

时间:2013-03-27 12:22:46

标签: android android-lifecycle onresume

有人可以给我一个在Android中使用onResume()的示例吗?

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

如果我想更新数据,我该如何将其放入onResume()?

9 个答案:

答案 0 :(得分:108)

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

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

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

}

答案 1 :(得分:57)

重新启动应用会调用OnCreate()

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

the Android activity lifecycle, from https://developer.android.com/images/activity_lifecycle.png on https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

答案 2 :(得分:25)

理解的最佳方法是在您的活动中覆盖所有LifeCycle方法并放置断点(如果检入模拟器)或登录每个方法。你会知道哪一个被调用。

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

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

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

答案 3 :(得分:9)

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

  

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

执行什么方法

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

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

答案 4 :(得分:3)

onResume()是整个activity lifecycle中调用的方法之一。 onResume()onPause()的对应部分,只要活动从视图中隐藏,就会调用onResume()。如果你开始一个隐藏它的新活动。当隐藏的活动返回到屏幕上的视图时,将调用onCreate()

您的问题是,请问用什么方法重新启动活动。首次创建活动时会调用onPause()。在实践中,大多数活动通过一系列onResume()onRestart()来电在后台持续存在。如果onStop()首先通过调用onStop()完全停止然后恢复活动,则onResume()实际上只会重新启动活动。因此,如果您实际上没有使用@Override public void onResume(){ //will be executed onResume } 停止活动,那么您最常使用的是{{1}}。

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

{{1}}

答案 5 :(得分:2)

重新审核android Activity Lifecycle refere3nce。有一个很好的图片,表格显示了什么方法被调用。

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

答案 6 :(得分:2)

科特琳

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

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

Flat(price) + Worker(share)

答案 7 :(得分:2)

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

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

onPaused() —> onStop() —> onDestory()

当你按下home键

onPaused() –> onStop()

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

onRestart() –> onStart() –> onResume()

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

onResume()

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

onPause() –> onResume()

通话结束后

onResume()

当您的手机屏幕关闭时

onPaused() –> onStop()

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

onRestart() –> onStart() –> onResume()

快乐编码...@Ambilpura

答案 8 :(得分:0)

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

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

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

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

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

如果要更新数据,请创建一个数据更新函数,然后将该函数放入onResume()中。或者将loadData函数放入onResume()

最好借助“活动”生命周期图来了解生命周期。