我有以下工作流程:
- startActivityForResult(Activity1)
- finish() 在 Activity1 上调用(按下按钮时)
- onActivityResult() ==> startActivityForResult(Activity2)
===> Activity2.onCreate() 在 Activity1.onStop() 之前被调用
为什么我有那个?
已编辑:
代码如下:
1- MainActivity.java
// On click on a button
public void start(View view) {
Intent activityIntent = new Intent(this, Activity2.class);
startActivityForResult(activityIntent, 0);
}
protected void onActivityResult(int requestCode,
int resultCode,
Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Intent activityIntent = new Intent(this, Activity3.class);
startActivityForResult(activityIntent, 0);
}
2-Activity2.java
// A button to finish the activity
public void stop(View view) {
finish();
}
@Override
protected void onStop() {
super.onStop();
}
3-Activity3.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity3);
}
最佳答案
因为生命周期。 onStop 在 Activity 从 View 中移除后才会被调用。所以 onStop 不会被调用,直到其他东西在这种情况下从 user-activity2 阻止它。这意味着 Activity2 必须已经创建,因为如果您不存在,您将无法阻止另一个 Activity 。
关于android - 为什么在 onActivityResult() 中启动 Activity 时在 onCreate() 之后调用 onStop(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898431/