검색 구성 및 시작

이 작업은 프로그램이 만드는 검색 가능 엔터티로 제한된 검색을 시작하는 방법을 보여 줍니다. UnifiedSearchServices.search() 메소드는 스레드 실행을 차단하므로 아래의 doSearch()는 별도의 스레드에서 이를 호출합니다.

  1. 필요한 클래스와 인터페이스를 가져옵니다.
    import net.rim.device.api.unifiedsearch.*;
    import net.rim.device.api.unifiedsearch.searchables.*;
    import java.util.*;
    
  2. UnifiedSearchServices 객체에 대한 참조를 저장하기 위한 인스턴스 변수를 만듭니다.
    public class MySearchScreen() {
        UnifiedSearchServices _uss = UnifiedSearchServices.getInstance();
  3. EntityBasedSearchable 객체에 대한 참조를 검색하고 인스턴스 변수에 지정합니다. 단말기에서 검색 가능 프로그램의 목록을 검색할 때 SearchableContentTypeConstants 값을 검색에 적합한 값으로 변경합니다. deviceSearchables 벡터에서 EntityBasedSearchable을 찾을 수 없는 경우 필요한 조치를 취해야 합니다.
    MySearchable _searchable = null;
    Vector deviceSearchables = _uss.getDeviceSearchables(SearchableContentTypeConstants.CONTENT_TYPE_MEMO);
    for(int i = deviceSearchables.size() -1; i >=0; --i) {
        if(deviceSearchables.elementAt(i).getName().equals("name of your searchable")) {
            _searchable = (MySearchable) deviceSearchables.elementAt(i);
        }
    }
    // Do something if _searchable is still null
  4. 검색을 시작할 메소드를 만듭니다. 검색 키워드를 매개 변수로 받아들입니다. 여기에서 프로그램은 BlackBerry 단말기 사용자가 제공하는 검색 키워드를 지정합니다. 이 메소드는 새 스레드를 호출하므로 String 매개 변수를 final로 선언합니다.
    private void doSearch(final String keyword) {
  5. 검색을 실행할 Thread 객체를 만듭니다.
        Thread searchThread = new Thread(new Runnable() {
            public void run() {
                try {
  6. 검색을 시작하고, 결과가 있으면 결과를 검색합니다. 결과가 있으면 결과를 다른 메소드로 보내 구문 분석합니다.
                    SearchResponse results = null;
                    results = _uss.search(keyword, _searchable);
                    if(results != null) {
                        parseResponse(results);
                    }
  7. 발생하는 오류를 파악합니다.
                } catch (Exception e) {
                    // Do something about the error
                }
  8. Thread 정의를 완료하고 실행합니다.
            }, "Search Thread");
        searchThread.start();
완료 후: parseResponse를 구현합니다. 자세한 내용은 "검색 결과 처리"를 참조하십시오.
다음 주제: 검색 결과 처리
이전 주제: 검색

이 정보가 도움이 되었습니까? 의견을 보내 주십시오.