我知道当一个活动首次创建时,它的onCreate()方法就会起作用。
假设有一个主要活动通过意图启动另一个活动(secondActivity.java),然后第二个活动通过意图再次启动主要活动。我的问题是,在接收到intent之后是否调用了onRestart()方法的主要活动,还是调用了onCreate()方法?
提前致谢!
答案 0 :(得分:4)
我的问题是,在接收到intent之后是否调用了onRestart()方法,还是调用了onCreate()方法?
这取决于是否会创建主要活动的新实例。
默认情况下,会有人。在这种情况下,将使用onCreate()
调用主活动的新实例。主要活动的原始实例不受影响。
但是,通过Intent
标记(例如FLAG_ACTIVITY_REORDER_TO_FRONT
)或清单设置,您可以安排将主要活动的原始实例带回前台。在这种情况下,将使用onNewIntent()
调用原始实例(为您提供与Intent
一起使用的startActivity()
,将活动带回前台)。还应该使用onRestart()
,onStart()
和onResume()
作为回到前台的一部分进行调用。
答案 1 :(得分:1)
以下是来自文档的Android生命周期的图片:
当您启动第二个活动onPause()
时,将在第一个活动上调用等,然后在onCreate()
上调用,依此类推第二个活动。如上图所示,当您按下onRestart()
时,应在第一个活动上调用。
答案 2 :(得分:0)
如果您开始新意图,则会调用onCreate()
方法。