Создание действия поиска с помощью launchMode=SingleTop

У меня есть SearchActivity из пункта меню поиска со следующим кодом:

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() действия поиска я обрабатываю входящее намерение, но если я регистрирую запрос, независимо от того, сколько раз я меняю запрос, он показывает только самый первый сделанный запрос, который запустил действие поиска.

Есть ли что-то, что мне здесь не хватает?


person Alex Kombo    schedule 18.10.2016    source источник
comment
Покажите код, который вы используете для регистрации запроса в onNewIntent().   -  person David Wasser    schedule 19.10.2016


Ответы (1)


попробуйте установить

    <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" />

это рабочий код

person Hala.M    schedule 18.10.2016