我的应用程序中有搜索功能。当从“显示活动”调用搜索栏并且用户执行搜索时,我想完成显示活动并将用户带到搜索活动。有没有办法知道 SearchManager.onDismissListener 是否因为正在执行搜索而被调用?
我要避免的是有几个搜索结果屏幕 > 显示 > 搜索结果 > 显示等,而是在执行搜索时“返回”搜索结果,因此只有一个搜索活动和一个显示活动随时堆叠。
我的应用程序中有搜索功能。当从“显示活动”调用搜索栏并且用户执行搜索时,我想完成显示活动并将用户带到搜索活动。有没有办法知道 SearchManager.onDismissListener 是否因为正在执行搜索而被调用?
我要避免的是有几个搜索结果屏幕 > 显示 > 搜索结果 > 显示等,而是在执行搜索时“返回”搜索结果,因此只有一个搜索活动和一个显示活动随时堆叠。
如果我正确理解您的问题,您希望防止多次创建搜索活动。
Android 文档中搜索对话框对您的活动生命周期的影响有您想要的解释。
本质上,您希望在清单中定义可搜索活动时设置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
and处理意图的建议onNewIntent
,而不是在此处重复,我只会将您引至该链接。
你也可以对你的表演活动做同样的事情android:launchMode="singleTop"