Konfigurieren und Starten einer Suche

Diese Aufgabe demonstriert, wie Sie eine Suche starten, die auf die von Ihrer Anwendung erstellten suchbaren Entitäten begrenzt ist. Die UnifiedSearchServices.search()-Methode blockiert die Threadausführung. Daher ruft doSearch() sie nachfolgend in einem separaten Thread auf.

  1. Importieren Sie die erforderlichen Klassen und Schnittstellen.
    import net.rim.device.api.unifiedsearch.*;
    import net.rim.device.api.unifiedsearch.searchables.*;
    import java.util.*;
    
  2. Erstellen Sie eine Instanzvariable, um einen Hinweis auf das UnifiedSearchServices-Objekt zu speichern.
    public class MySearchScreen() {
        UnifiedSearchServices _uss = UnifiedSearchServices.getInstance();
  3. Rufen Sie einen Hinweis auf das EntityBasedSearchable-Objekt ab, und weisen Sie es einer Instanzvariablen zu. Wenn Sie eine Liste suchbarer Anwendungen auf dem Gerät abrufen, ändern Sie den SearchableContentTypeConstants-Wert in einen für Ihre Suche geeigneten Wert. Stellen Sie sicher, dass eine bestimmte Maßnahme ergriffen wird, wenn EntityBasedSearchable nicht im deviceSearchables-Vektor gefunden wird.
    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. Erstellen Sie eine Methode, um die Suche zu starten. Übernehmen Sie das Suchwort als Parameter, an dem Ihre Anwendung die Suchwörter festlegt, die der BlackBerry-Gerätebenutzer eingibt. Diese Methode ruft einen neuen Thread auf. Deklarieren Sie daher den String-Parameter als final.
    private void doSearch(final String keyword) {
  5. Erstellen Sie das Thread-Objekt, das Ihre Suche ausführen soll.
        Thread searchThread = new Thread(new Runnable() {
            public void run() {
                try {
  6. Starten Sie die Suche, und rufen Sie die Ergebnisse ab (falls zutreffend). Wenn ein Ergebnis vorliegt, senden Sie es zur Analyse an eine andere Methode.
                    SearchResponse results = null;
                    results = _uss.search(keyword, _searchable);
                    if(results != null) {
                        parseResponse(results);
                    }
  7. Zeichnen Sie aufgetretene Fehler auf.
                } catch (Exception e) {
                    // Do something about the error
                }
  8. Schließen Sie die Thread-Definition ab, und führen Sie sie aus.
            }, "Search Thread");
        searchThread.start();
Nach Abschluss erforderliche Aktion: Implementieren Sie parseResponse. Weitere Informationen finden Sie unter "Bearbeiten von Suchergebnissen".
Vorheriges Thema: Suchen

Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.