有人可以给我一个在Android中使用onResume()
的示例吗?
另外,如果我想在另一个执行结束时重新启动活动,执行哪个方法 - onCreate()
或onResume()
?
如果我想更新数据,我该如何将其放入onResume()?
答案 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的官方文档,这是活动生命周期的图表。
答案 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),则可能有几种不同的情况。
另一个活动(B)已被暂停和/或停止或销毁,并且活动A可能已被暂停(onPause()),在这种情况下,活动A将调用onResume()
活动B已被暂停和/或停止或销毁,由于内存的原因,活动A可能已经停止(onStop()),在这种情况下,活动A将首先调用onRestart(),onStart ()其次,然后是onResume()
活动B已被暂停和/或停止或销毁,活动A已被销毁,程序员可以手动调用onStart()首先启动活动,然后再调用onResume(),因为当活动处于活动尚未开始的销毁状态,这发生在活动被完全删除之前。如果活动被删除,则需要再次创建活动。 我认为手动调用onStart()是因为如果未启动活动并将其创建,则将在onCreate()之后调用onStart()。
如果要更新数据,请创建一个数据更新函数,然后将该函数放入onResume()中。或者将loadData函数放入onResume()
最好借助“活动”生命周期图来了解生命周期。