显示的应用程序的主菜单主屏幕上时,返回的应用程序后,开始了一个外部活性/意图

StackOverflow https://stackoverflow.com/questions/2453398

  •  20-09-2019
  •  | 
  •  

我开始安卓市场,通过我应用程序的搜索类似产品采用这个代码:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://market.android.com/search?q=pub:\"some txt\""));
c.startActivity(intent);

这一工作的现为表示类似的产品。然而,如果我碰上的家庭按钮,同时在市场上,当我重新开放该程序仍然显示出市场的结果。我要去主菜单在这种情况。

是有一个解决方案?

有帮助吗?

解决方案

对不起,FLAG_ACTIVITY_NO_HISTORY可能是不正确的解决方案。注意它的语义 - 活动只是不会出现在历史上。因此,如果用户点击在它的东西去到下一个活动,然后按退一万,他们将不会返回到前一个(但在此之前的一个)。这是很少见你想要的。

更糟的是,如果他们去从市场活动,按家里的第二活性,并返回到您的应用程序,该次活动将仍然存在(它是保持自身的历史)。

这种情况的正确标记是 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET

其他提示

如果你加入 FLAG_ACTIVITY_NO_HISTORY 标志的意图,它将不会保持在历史堆。当用户导航回到你的应用程序,最后活动的可见之前推出该市场将会显示出来。

Intent intent = new Intent(Intent.ACTION_VIEW,
    Uri.parse("http://market.android.com/search?q=pub:\"some txt\"")); 

c.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
c.startActivity(intent); 

编辑: hackbod 是正确的: FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET 是一个更适合你需要什么。

这是没有问题的。

当你按下市场应用程序不会被关闭的家,只是暂停。所以,当你再次打开它,你恢复它。检查的Android活动的生命周期

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top