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

标签 android android-activity

我有以下工作流程:

  • 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/

相关文章:

android - 如果 Activity 刚刚停止,是否有办法将 Activity 移回前台?

java - 在 ActionBar 中显示 Logo

Android 在后台保持 Activity

java - 当使用 Home 而不是 Back 时,onActivityResult() 永远不会被调用

android - 无法在我的设备中启动 Android 应用程序

android - 检索联系人的默认号码

Android 同步适配器资源

Android:以编程方式打开 "Recent Apps"对话框

android - 在 SQLite 中使用 strftime

java - 从列表中删除时 Android 中出现 UnsupportedOperationException