我有一项活动,我想只存在一次,无论它打开多少次。以前我使用的是launchMode singleTask,一切都运行得很好。但是,现在我需要使用onActivityResult,由于某种原因,它与launchMode singleTask不兼容。
你知道如何复制他们中的任何一个。
答案 0 :(得分:3)
我的主要活动也是单一任务,但我肯定从我的主要活动开始活动以获得结果并获得结果。
这是我的宣言:
<activity
android:name=".activities.Main"
android:theme="@android:style/Theme.Light"
android:screenOrientation="portrait"
android:launchMode="singleTask"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这是我的onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
super.onActivityResult(requestCode, resultCode, intent);
// blah blah checking if if the requestCode and resultCode are good //
}
我确定你要在其他活动中设置结果......
因此,只需与我的代码交叉检查,让我们看看是否能找到问题。
希望这有帮助
-serkan
答案 1 :(得分:1)
您可以使用FLAG_ACTIVITY_REORDER_TO_FRONT,这会将已启动的活动带到其任务堆栈的前面,而不是创建新实例。
请注意,结果将传递给第一个调用startActivityForResult的活动。这个answer提供了一个很好的例子。