繁体   English   中英

当连续为两个不同的活动调用startActivity时,onCreate没有被调用为第一个活动

[英]onCreate not getting called for first activity when calling startActivity consecutively for two different activities

我有三个活动ABC。

在A的onCreate()中,我在两个连续的语句中调用startActivity(...)来启动B和C。但是android不会立即在活动B上调用onCreate() 相反,当我按C时,因为它位于堆栈的顶部。 然后在B和其他生命周期方法上调用onCreate()

这是我的示例代码的样子。

public class A extends Activity {

  @Override 
  protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  startActivity(this, B.class); 
  startActivity(this, C.class);
  }
}

关于活动B的onCreate调用为何被推迟的任何线索?

简而言之,您将startActivity命令推入队列,而B等待轮到它了。 如果要A-> B-> C,请从B的onCreate调用C。

它将排队您对onCreate的连续调用。 按下创建的最后一个活动(在本例中为C)后,将创建活动B,从而在B上调用onCreate。

您可以在Activity的OnPause( )中使用finish()清除堆栈中的Activity,而不是正在执行的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM