2011-04-19 2 views
3

내 주요 활동의 onCreate() 메소드에서 사용자가 검색 대화 상자를 취소 할 때 Activity의 onCancel() 메소드가 콜백되도록 설정했습니다. 검색을하지 않고. 여기 내 등록 코드는 다음과 같습니다안드로이드 검색 onCancel() 청취자가 호출되지 않습니다

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

내 활동 SearchManger.OnCancelListener 내으로 onCancel을() 메소드가 현재 Log.d() 문이다 구현합니다. 그러나, 검색 대화 상자를 취소 할 때마다 (예를 들어, 뒤로 버튼 사용),이 방법은 결코 호출되지 않는다.

분명히 말해서 검색 기능은 실행될 때 제대로 작동합니다. 사용자가 검색 대화 상자를 취소 할 때 알림을 보내고 조치를 취할 수 있습니다. 또한 요청시 화면 상단에 나타나는 기본 Android 검색 대화 상자를 사용하고 있습니다.

필요한 구성이 있습니까? 예 : 지. 이 콜백을 지원하려면 AndroidManifest.xml에서? 아니면 방금 바보 같은 짓을하고 있습니까?

답변

6

당신은 활동 상황 또한

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

을 사용할 필요가, 내가 한 OnDismissListener은으로 onCancel 만 명시하고 속임수를 썼는지 뒤로 버튼

+0

에 의해 트리거되지 않는 한,으로 onCancel 이상 권장 생각 -- 감사! 실행중인 에뮬레이터에서 onCancel()은 뒤로 버튼과 통조림 검색 대화 상자 외부를 클릭하여 호출되므로 도착하면 OK라고 생각합니다. – mharper

+0

아, 다시 문서를 살펴보면 취소 작업이 처리됩니다. 검색이 실행될 때가 아니라 닫히면 처리됩니다. 그러면 앱에 도움이 될 것입니다. – Joe

관련 문제