Android搜索onCancel()侦听器未被调用

时间:2011-04-19 22:10:58

标签: android android-searchmanager

在我的主Activity的onCreate()方法中,当用户取消搜索对话框而不发出搜索时,我设置了对Activity的onCancel()方法的回调(我相信)。这是我的注册码:

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

我的Activity实现了SearchManger.OnCancelListener,我的onCancel()方法当前是一个Log.d()语句。但是,每当我取消搜索对话框(例如使用后退按钮)时,都不会调用此方法。

要清楚,搜索功能在执行时效果很好。我只想在用户取消搜索对话框时收到通知,以便我采取行动。此外,我正在使用屏幕顶部显示的默认Android搜索对话框。

我需要某种配置,例如: G。在AndroidManifest.xml中,为了支持这个回调?或者我只是缺少/做一些愚蠢的事情(完全有可能)?

1 个答案:

答案 0 :(得分:6)

您需要使用活动上下文

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

此外,我相信onDismissListener建议优于onCancel,因为onCancel只是显式的,不会被后退按钮触发