如何覆盖android:launchMode =" singleTop"?

时间:2014-11-24 19:33:30

标签: android android-intent

我在清单中使用SearchActivity定义了android:launchMode="singleTop"

我的SearchActivity包含SearchView,用户可以输入查询,还有ViewPager来显示搜索结果。

我为SearchActivity选择了单个顶部,因此使用可以在活动中进行大量搜索,然后只需按一次返回按钮即可返回主屏幕。

但是,我刚刚介绍了一个" SmartSearch"按钮进入活动状态,当按下该按钮时,将触发自动高级搜索,结果仍会显示在SearchActivity中。

但要求是,我需要这些高级搜索结果显示在堆栈上的新活动中 - 即,当用户按下Back时,它们将被带到之前的(标准)结果屏幕,然后必须再次按返回以返回主屏幕。

我已阅读this about launch modes和此about tasks and back stack,并试图推出“先进版”' SearchActivity使用这样的意图......

smartSearchIntent.putExtra(SearchResultsActivity.QUERY_EXTRA_KEYS, selectionArgs);
smartSearchIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

...我也尝试使用Intent.FLAG_ACTIVITY_NEW_TASK作为参数,但当我在高级搜索结果屏幕上按Back时,它会直接跳回主屏幕。

我一直在此活动的清单中定义android:launchMode="singleTop",因为这是正常的'行为 - 所以可以覆盖这个,如果是这样,怎么做?

或者有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我为此制定了解决方案/解决方法。刚刚发布了我的答案给有相关问题的人 - https://stackoverflow.com/a/27125107/1617737