在我的主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中,为了支持这个回调?或者我只是缺少/做一些愚蠢的事情(完全有可能)?
答案 0 :(得分:6)
您需要使用活动上下文
SearchManager searchManager = (SearchManager) this.getSystemService(Context.SEARCH_SERVICE);
此外,我相信onDismissListener建议优于onCancel,因为onCancel只是显式的,不会被后退按钮触发