我有三项活动 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的调用被推迟的任何线索?
答案 0 :(得分:2)
简单来说,您将startActivity命令推送到队列中,B正在等待轮流。如果你想要A - > B - > C,从B's onCreate调用C.
答案 1 :(得分:2)
它将连续调用onCreate。一旦你按下最后创建的活动(在这种情况下为C),将创建活动B,导致在B上调用onCreate。
答案 2 :(得分:0)
您可以在活动的finish()
中使用OnPause(
清除堆栈中的活动,而不是您正在做的事情。