2

我有一个活动,我只想存在一次,无论它打开多少次。以前我使用的是launchMode singleTask,一切都很好。但是,现在我需要使用 onActivityResult,由于某种原因,它与 launchMode singleTask 不兼容。

您是否知道复制其中任何一个功能的方法。

4

2 回答 2

3

我的主要活动也是一个单任务,但我肯定会从主要活动开始ActivitiesForResults 并获取结果。

这是我的清单声明:

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

我确定您正在其他活动中设置结果...

所以只需用我的交叉检查你的代码,让我们看看我们是否能找到问题。

  • 确保 onActivityResult 在您覆盖它时受到“保护”。

希望这可以帮助

-serkan

于 2011-10-01T04:18:12.950 回答
1

您可以使用FLAG_ACTIVITY_REORDER_TO_FRONT,这会将启动的活动带到它的任务堆栈的前面,而不是创建一个新实例。

请注意,结果将传递给调用 startActivityForResult 的第一个活动。这个答案提供了一个很好的例子来说明它是如何工作的。

于 2012-07-28T01:12:02.067 回答