当我在研究一个开源的 Android 项目时,我有这个问题。
我有一个活动 A1 在其“onCreate”方法中调用另一个活动 A2。但是,“startActivity / startActivityForResult”方法前后都有代码语句。我不知道“startActivity / startActivityForResult”方法之后A1中的执行顺序。
A1的代码框架如下:
public void onCreate(Bundle bundle) {
<code statements before>
this.startActivityForResult(.....); // Start A2 here.
<code statements after>
}
public void onResume() {
<code statements>
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
<code statements>
}
.....
我想知道 A1 是否会在调用 A2 之前先完成其执行周期(即“onCreate”->“onStart”->“onResume”->“onPause”->“onStop”),还是先完成“onCreate”再调用调用 A2,还是有其他执行逻辑?
此外,当A2返回(完成)并调用A1中的“onActivityResult”时,A1是否会在执行“onActivityResult”方法后执行“onRestart”->“onStart”->“onResume”?
因为 A1 和 A2 都有自己的 UI,所以我认为这 2 个活动可能不会与两个不同的线程同时执行。有谁知道这种情况下的确切执行顺序?
提前感谢您的任何建议。