Android 两个activity跳转,怎么 能不触发第一个activity的onDestroy
时间: 2023-11-28 16:47:35 浏览: 79
在 Android 中,当你启动一个新的 Activity 时,系统会将当前 Activity 的 onPause()、onStop() 和 onDestroy() 方法依次调用。如果你希望在不触发第一个 Activity 的 onDestroy 方法的情况下启动第二个 Activity,可以使用以下两种方法:
1. 使用 FLAG_ACTIVITY_NEW_TASK 标志启动第二个 Activity。这个标志会将 Activity 启动在一个新的任务栈中,从而避免第一个 Activity 的 onDestroy 方法被调用。代码如下:
```java
Intent intent = new Intent(this, SecondActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
```
2. 使用 startActivityForResult() 方法启动第二个 Activity,并在第二个 Activity 中设置 setResult() 方法返回到第一个 Activity。这样,第一个 Activity 的生命周期方法不会被调用。代码如下:
在第一个 Activity 中:
```java
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
```
在第二个 Activity 中:
```java
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
```
需要注意的是,第二种方法需要在第二个 Activity 中手动调用 finish() 方法,否则会一直停留在第二个 Activity 中。
阅读全文