2010-12-09 75 views
2

我在我的应用程序中有搜索功能。当从“展示活动”调用搜索栏并且用户执行搜索时,我想完成展示活动并将用户带到搜索活动中。有没有办法知道SearchManager.onDismissListener是否因执行搜索而被调用?如何在Android中执行搜索时完成当前活动?

我想要避免的是有几个屏幕的搜索结果>显示>搜索结果>显示等,而是“返回”搜索结果,每次执行搜索时,因此只有一个搜索活动和一个在任何时候在堆栈中显示活动。

回答

2

如果我正确理解您的问题,您希望防止多次创建搜索活动。

The impact of the search dialog on your activity lifecycle在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> 

但要注意听从他们的建议处理意图与onCreateonNewIntent,这不是重复这里我就向您推荐的是链接。

您可以对您的演出活动以及android:launchMode="singleTop"