在startActivityForResult内部调用startActivityForResult

5
如果我调用startActivityForResult,并且启动的活动还调用另一个活动的startActivityForResult,第一个活动是否可能被停止?有没有办法防止这种情况发生?每个我创建的意图应该传递什么上下文?
一些代码来解释这个过程
intent = new Intent(MainActivity.this, SettingsActivity.class);
startActivityForResult(intent, AbstractSettingsActivity.SETTINGS_ACTIVITY_REQUEST_CODE);

// this is inside the Settings activity
Intent intent = new Intent(getBaseContext(), SettingsTabsActivity.class);
startActivityForResult(intent, CUSTOMIZE_TAB_REQUEST_CODE);
// at this point i got ondstroy on main activity - main is not the root

我认为这与我的主活动上的无历史标志有关... - Chen Kinnrot
1个回答

2
无论是使用 startActivity 还是 startActivityForResult,当您启动一个新的活动时,您当前的 Activity 将通过调用其 onStop 方法进入 stopped 状态。这是 Android 活动生命周期 的设计方式,与上下文类型无关。
然而,如果您不想发生 onStop,那么也许您可以通过 Dialogs 模拟预期的视图,这将导致您的 Activity 达到其 onPause 状态。

我能在一个对话框里打开另一个对话框吗?还是应该使用活动来打开对话框? - Chen Kinnrot
如果您的视图要求复杂,那么您应该继续进行活动。为什么要避免在父活动中使用onStop? - waqaslam
由于某种奇怪的原因,我会进入 onDestroy... 然后无法返回到该活动。 - Chen Kinnrot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接