我正在通过我的应用启动Android电子市场,使用此代码搜索类似的产品:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://market.android.com/search?q=pub:\"some txt\""));
c.startActivity(intent);
这适用于展示类似产品。但是,如果我在市场上点击主页按钮,当我重新打开应用程序时,它仍会显示市场结果。在这种情况下,我想转到主菜单。
有解决方案吗?
答案 0 :(得分:15)
抱歉,FLAG_ACTIVITY_NO_HISTORY
可能不是正确的解决方案。请注意它的语义 - 活动不会出现在历史记录中。因此,如果用户点击其中的一个东西以进入下一个活动,然后按下它们,它们将不会返回到前一个(但之前的那个)。这很少是你想要的。
更糟糕的是,如果他们从市场活动中进入第二个活动,请按回家,然后返回到您的应用程序,第二个活动仍将在那里(它将保留在历史记录中)。
此情况的正确标志为FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET。
答案 1 :(得分:10)
如果将FLAG_ACTIVITY_NO_HISTORY
标志添加到intent中,它将不会保留在历史堆栈中。当用户导航回您的应用程序时,将显示您在启动市场之前可见的最后一项活动。
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
更适合您的需求。
答案 2 :(得分:0)
这不是问题。
当你在Market应用程序上按下它时,它没有关闭,只是暂停了。所以,当你再次打开它时,你就恢复它。检查Android activity's lifecycle。