繁体   English   中英

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

[英]Why onStop() is called after onCreate() when starting an Activity within onActivityResult()

我有以下工作流程:

  • startActivityForResult(Activity1)
  • 在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);
            }

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。 因此,在这种情况下,除非有其他阻止它的状态,否则onStop不会被调用。 这意味着必须已经创建了Activity2,因为如果您不存在则无法阻止其他活动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM