2016-10-18 119 views
0

我有一个SearchActivity是从下面的代码搜索菜单项:创建搜索活动与launchMode =“SingleTop”

SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView(); 
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

manifest,搜索活动的声明如下:

<activity 
    android:name=".activity.Search" 
    android:launchMode="singleTop" 
    android:label="@string/app_name"> 

    <intent-filter> 
     <action android:name="android.intent.action.SEARCH" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 

    <meta-data 
     android:name="android.app.default_searchable" 
     android:value=".activity.Search" /> 

    <meta-data 
     android:name="android.app.searchable" 
     android:resource="@xml/searchable" /> 
</activity> 

在搜索活动的onCreate()onNewIntent()方法,我处理传入的意图,但如果我登录查询,无论多少次,我更改查询,那只能说明推出了搜索建立的第一查询活动。

有什么我在这里失踪?

+0

显示您使用 “登录查询”,在'onNewIntent()'的代码。 –

回答

0

尝试设置

<activity 
     android:name=".SearchableActivity" 
     android:launchMode="singleInstance" 
     android:screenOrientation="landscape" 
     > 
     <meta-data 
      android:name="android.app.searchable" 
      android:resource="@xml/searchable"/> 

     <intent-filter> 
      <action android:name="android.intent.action.SEARCH"/> 
     </intent-filter> 
    </activity> 

XML是

<?xml version="1.0" encoding="utf-8"?> 
<searchable xmlns:android="http://schemas.android.com/apk/res/android" 
android:hint="@string/search_hint" 
android:label="@string/app_name" /> 

这是一个工作代码