android - 在处理搜索请求的同一 Activity 中调用方法 onSearchRequested() 会导致 Activity 堆栈重复

标签 android android-searchmanager

我有一个使用 SearchManager 处理搜索请求的 Activity ,它工作正常。我们将此 Activity 称为 MySearchActivity.java。问题是,在此 Activity 中,我有一个按钮可以通过调用 onSearchRequested() 来调用搜索请求对话框。

如果 MySearchActivity.java 是 Activity 堆栈中的当前任务,并且用户点击此 Activity 中调用 onSearchRequested() 的图标,则此 Activity 将在其自身之上重新启动。所以在 Activity 堆栈中,我有两个相同的 Activity 在彼此之上。

我不想在 list 中为此 Activity 使用 android:noHistory,也找不到任何其他适合我想要完成的标志。

我希望如果用户点击调用 onSearchRequested() 的 MySearchActivity.java 中的图标, Activity 不会在堆栈中复制自身。

我知道我可能忽略了某些东西或使它比实际情况更复杂......有什么想法吗?

最佳答案

对于解决方案,您可能必须将 Activity 的启动模式设置为“singleTop”(例如 android:launchMode="singleTop")。这是进一步的解释@ documentation .祝你好运!

关于android - 在处理搜索请求的同一 Activity 中调用方法 onSearchRequested() 会导致 Activity 堆栈重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8936971/

相关文章:

AndroidStudio - Gradle 中的模块依赖

java - 如何在 Android 中全局保存 "list"或至少实例以供在任何 Activity 中使用?

java - 机器人 : adding SearchView inside a Custom ListView with Custom Adapter

java - 使用自定义搜索建议提供程序时获取搜索查询字符串

android - 在 cca 运行 Ionic throw "Cannot read property ' Keyboard' of undefined"@ app.js :14

android - 数字产品的 Android 应用内购买中允许的最高价格限制

android - 显示进度条,然后在我恢复 Activity 时将其隐藏

android - 如果用户按下设备的搜索按钮,则在 ActionBar 中显示 SearchWidget

安卓搜索管理器 : How to set minimum number of characters to enable the Search