在onActivityResult()中启动活动时,为什么在onCreate()之后调用onStop()

Ana*_*AJI 1 android android-activity

我有以下工作流程:

  • startActivityForResult(活动1)
  • 在Activity1上调用finish()(按下按钮时)
  • onActivityResult()==> startActivityForResult(Activity2)

===>在Activity1.onStop()之前调用Activity2.onCreate()

为什么我有这个?

编辑:

这是代码:

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);
            }
Run Code Online (Sandbox Code Playgroud)

2- Activity2.java

// A button to finish the activity
public void stop(View view) {
    finish();
}

@Override
protected void onStop() {
    super.onStop();
}
Run Code Online (Sandbox Code Playgroud)

3- Activity3.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_activity3);
}
Run Code Online (Sandbox Code Playgroud)

Gab*_*han 10

因为生命周期.直到从视图中删除活动后才会调用onStop.因此,在这种情况下,只有在用户活动2阻止其他内容之后才会调用onStop.这意味着必须已经创建了Activity2,因为如果您不存在,则无法阻止其他活动.