Guía de desarrollo

Local Navigation

Configurar e iniciar una búsqueda

Esta tarea demuestra cómo iniciar una búsqueda limitada a las entidades que se pueden buscar creadas por su aplicación. El método UnifiedSearchServices.search() bloquea la ejecución del subproceso, así que doSearch() lo invoca en un subproceso separado.

  1. Importe las clases y las interfaces necesarias.
    import net.rim.device.api.unifiedsearch.*;
    import net.rim.device.api.unifiedsearch.searchables.*;
    import java.util.*;
    
  2. Cree una variable de instancia para almacenar una referencia al objeto UnifiedSearchServices.
    public class MySearchScreen() {
        UnifiedSearchServices _uss = UnifiedSearchServices.getInstance();
  3. Recupere una referencia a su objeto EntityBasedSearchable y asígnelo a una variable de instancia. Cuando recupere una lista de aplicaciones que se pueden buscar en el dispositivo, cambie el valor SearchableContentTypeConstants por uno que sea apropiado para su búsqueda. Asegúrese de realizar alguna acción si EntityBasedSearchable no se encuentra en el vector 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. Cree un método para iniciar la búsqueda. Acepte la palabra clave de la búsqueda como un parámetro en el que su aplicación especifica las palabras clave de la búsqueda que proporciona el usuario del dispositivo BlackBerry. Este método invoca un subproceso nuevo, así que declare el parámetro String como final.
    private void doSearch(final String keyword) {
  5. Cree el objeto Thread que ejecutará su búsqueda.
        Thread searchThread = new Thread(new Runnable() {
            public void run() {
                try {
  6. Inicie la búsqueda y recupere los resultados, si los hay. Si hay algún resultado, envíelo a otro método para ser analizado.
                    SearchResponse results = null;
                    results = _uss.search(keyword, _searchable);
                    if(results != null) {
                        parseResponse(results);
                    }
  7. Alcance los errores que surjan.
                } catch (Exception e) {
                    // Do something about the error
                }
  8. Complete la definición Thread y ejecútela.
            }, "Search Thread");
        searchThread.start();
Después de terminar: Implemente parseResponse. Para obtener más información, consulte "Procesar los resultados de la búsqueda".
Tema anterior: Búsquedas

¿Le ha resultado útil esta información? Envíenos sus comentarios.