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

时间:2012-04-30 13:46:37

标签: android

我有三项活动 A B C

在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的调用被推迟的任何线索?

3 个答案:

答案 0 :(得分:2)

简单来说,您将startActivity命令推送到队列中,B正在等待轮流。如果你想要A - > B - > C,从B's onCreate调用C.

答案 1 :(得分:2)

它将连续调用onCreate。一旦你按下最后创建的活动(在这种情况下为C),将创建活动B,导致在B上调用onCreate。

答案 2 :(得分:0)

您可以在活动的finish()中使用OnPause(清除堆栈中的活动,而不是您正在做的事情。