2

我有三个活动ABC

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

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

public class A extends Activity {

  @Override 
  protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

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

为什么对活动 B 的 onCreate 的调用被推迟的任何线索?

4

3 回答 3

2

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

于 2012-06-03T15:27:41.687 回答
2

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

于 2012-04-30T13:49:41.797 回答
0

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

于 2012-04-30T13:56:34.007 回答