Как мне завершить текущее действие при выполнении поиска в Android? - PullRequest
2 голосов
/ 09 декабря 2010

У меня есть функция поиска в моем приложении.Когда панель поиска вызывается из «шоу-активности» и пользователь выполняет поиск, я хочу завершить шоу-операцию и перевести пользователя к поисковой активности.Есть ли способ узнать, вызывается ли SearchManager.onDismissListener из-за выполняемого поиска?

Чего я хочу избежать, так это иметь несколько экранов результатов поиска> show> результаты поиска> show и т. Д., И скорее "вернуться назад »к результатам поиска всякий раз, когда выполняется поиск, и, таким образом, в одно и то же время в стеке может быть только одно действие поиска и одно действие показа.

1 Ответ

2 голосов
/ 10 мая 2011

Если я правильно понимаю ваш вопрос, вы хотите предотвратить многократное создание поисковой активности.

Влияние диалогового окна поиска на жизненный цикл вашей активности в документации для 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 и onNewIntent, которые здесь не дублируютсяЯ просто отошлю вас по этой ссылке.

Вы можете сделать то же самое с тем, что вы делаете с шоу, также с android:launchMode="singleTop"

...