Android-поиск onCancel () слушатель не вызывается - PullRequest
3 голосов
/ 20 апреля 2011

В методе onCreate () моего основного Activity я настраивал обратный вызов метода onCancel () Activity, который будет вызываться (я полагаю), когда диалог поиска отменяется пользователем без выполнения поиска. Вот мой регистрационный код:

SearchManager searchManager = (SearchManager) getApplicationContext().getSystemService(Context.SEARCH_SERVICE);
searchManager.setOnCancelListener(this);

Моя активность реализует SearchManger.OnCancelListener, и мой метод onCancel () в настоящее время является оператором Log.d (). Однако всякий раз, когда я отменяю диалоговое окно поиска (например, с помощью кнопки назад), этот метод никогда не вызывается.

Чтобы было ясно, функция поиска работает просто отлично при выполнении. Я просто хочу получить уведомление, когда пользователь отменил диалог поиска, чтобы я мог принять меры. Кроме того, я использую стандартное диалоговое окно поиска Android, которое появляется в верхней части экрана при запросе.

Есть ли какая-то конфигурация, которая мне нужна, e. г. в AndroidManifest.xml, чтобы поддержать этот обратный вызов? Или я просто упускаю / делаю что-то глупое (вполне возможно)?

1 Ответ

6 голосов
/ 20 апреля 2011

Вам необходимо использовать контекст Activity

SearchManager searchManager = (SearchManager) this.getSystemService(Context.SEARCH_SERVICE);

Кроме того, я считаю, что onDismissListener рекомендуется вместо onCancel, поскольку onCancel является только явным и не вызывается кнопкой возврата

...