android:noHistory =“true”行为但仍然捕获OnActivityResult?

时间:2015-02-18 17:06:45

标签: android

我有一个应用程序,在用户第一次使用应用程序时向用户显示个人资料编辑屏幕。在编辑个人资料活动中,我需要允许用户创建个人资料图像以捕获图像或从图库中选择。

我希望能够捕获OnActivityResult,但一旦完成它们 编辑个人资料,我不希望这个在堆栈上。将noHistory设置为true可以杀死活动,但我无法捕获结果。

我第一次想要这个: 闪屏---->编辑个人资料---->主菜单。

当用户从主菜单按下后退按钮时,我希望应用程序停止,而不是从堆栈弹出编辑配置文件。

关于如何在获得OnActivityResult后设置noHistory的任何想法?

1 个答案:

答案 0 :(得分:2)

根据documentation,无法获得使用" noHistory"指定的活动的结果。

  

在这种情况下,如果启动另一个,则永远不会调用onActivityResult()   此活动的结果的活动。

您可以通过清除现有堆栈来尝试达到预期结果:

Intent i = new Intent(context, MainMenuActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
        | Intent.FLAG_ACTIVITY_NEW_TASK
        | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);

它应该基于main menu活动开始新任务。