【问题标题】:How can I finish the current activity when performing a search in Android?在 Android 中执行搜索时如何完成当前活动?
【发布时间】:2010-12-09 12:54:18
【问题描述】:
我的应用中有搜索功能。当从“显示活动”调用搜索栏并且用户执行搜索时,我想完成显示活动并将用户带到搜索活动。有没有办法知道 SearchManager.onDismissListener 是否因为正在执行搜索而被调用?
我要避免的是有几个搜索结果屏幕 > 显示 > 搜索结果 > 显示等,而是在执行搜索时“返回”搜索结果,因此只有一个搜索活动和一个显示堆栈中的活动。
【问题讨论】:
标签:
android
search
android-activity
android-searchmanager
【解决方案1】:
如果我正确理解您的问题,您希望防止多次创建搜索活动。
Android 文档中的The impact of the search dialog on your activity lifecycle 对您想要的内容进行了解释。
本质上,您希望在清单中定义可搜索活动时将android:launchMode 设置为"singleTop"。从链接中的示例中,您将获得如下内容:
<activity android:name=".SearchableActivity"
android:launchMode="singleTop" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
但请注意遵循他们的建议,以处理 onCreate 和 onNewIntent 的意图,而不是在此处重复,我将仅向您推荐该链接。
您也可以使用 android:launchMode="singleTop" 对您的表演活动执行相同的操作