Configurar e iniciar uma pesquisa

Esta tarefa demonstra como iniciar uma pesquisa que é limitada às entidades pesquisáveis que seu aplicativo cria. O método UnifiedSearchServices.search() bloqueia a execução de thread, então doSearch() abaixo o invoca em um thread separado.

  1. Importe as classes e interfaces necessárias.
    import net.rim.device.api.unifiedsearch.*;
    import net.rim.device.api.unifiedsearch.searchables.*;
    import java.util.*;
    
  2. Crie uma variável de instância para armazenar uma referência ao objeto UnifiedSearchServices.
    public class MySearchScreen() {
        UnifiedSearchServices _uss = UnifiedSearchServices.getInstance();
  3. Recupere uma referência a seu objeto EntityBasedSearchable e o atribua a uma variável de instância. Quando você recupera uma lista de aplicativos pesquisáveis no aparelho, altere o valor SearchableContentTypeConstants a um que seja apropriado para sua pesquisa. Certifique-se de tomar algum tipo de ação se o seu EntityBasedSearchable não for localizado no vetor deviceSearchables.
    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. Crie um método para iniciar a pesquisa. Aceite a palavra-chave de pesquisa como um parâmetro, onde seu aplicativo especifica as palavras-chave de pesquisa que o usuário do aparelho BlackBerry fornece. Este método invoca um novo thread, então declare o parâmetro String como final.
    private void doSearch(final String keyword) {
  5. Crie o objeto Thread que executará sua pesquisa.
        Thread searchThread = new Thread(new Runnable() {
            public void run() {
                try {
  6. Inicie a pesquisa e recupere os resultados, se houver. Se houver um resultado, envie-o a outro método para ser analisado.
                    SearchResponse results = null;
                    results = _uss.search(keyword, _searchable);
                    if(results != null) {
                        parseResponse(results);
                    }
  7. Pegue os erros que são gerados.
                } catch (Exception e) {
                    // Do something about the error
                }
  8. Conclua a definição Thread e execute-a.
            }, "Search Thread");
        searchThread.start();
Quando terminar: Implemente parseResponse. Para obter mais informações, consulte "Processar resultados de pesquisa".
Tópico anterior: Pesquisar

Estas informações foram úteis? Gostaríamos de receber seus comentários.