2014-02-07 5 views
5

Ich würde gerne GreenDao mit einem Loader < Cursor> verwenden, um asynchron meine Daten aus der DB zu laden. Ich habe ein Beispiel gefunden, das loader mit einem contentProvider verwendet. Ich weiß, dass Loader der beste Weg sind, Daten aus einer Datenbank zu laden, da sie den Lebenszyklus des Cursors behandeln, den Cursor automatisch aktualisieren, wenn wir einen Wert hinzufügen. Leider gibt es kein Beispiel für einen Loader mit greenDao, ist es möglich oder ich habe einen ContentProvider verwenden ??Android: Wie verwende ich greenDao für asynchrone Ladedaten?

Thx

+0

Also hast du das ausprobiert? Ich habe die gleiche Idee aber nicht sicher – demaksee

Antwort

0

GreenDao können Sie run queries and return strongly typed objects, so dass ein Ladeprogramm nicht benötigt wird, können Sie sie einfach in einem AsyncTask wickeln kann. z.B .:

DaoSession session = DbHelper.getInstance().getDaoSession(); 
    final SpeakerDao speaker = session.getSpeakerDao(); 

    new AsyncTask<Void, Void, Speaker>() { 

     @Override 
     protected Speaker doInBackground(Void... params) { 
      return speaker.queryBuilder().list().get(0); 
     } 

     @Override 
     protected void onPostExecute(Speaker result) { 
      // do stuff with speaker 
     } 

    }.execute(); 
+0

Mit einem Ladeprogramm können Sie jedoch automatisch über eine Inhaltsänderung informiert werden. Müssten Sie in diesem Beispiel nicht in Intervallen abfragen, um das gleiche Ergebnis wie der Loader zu erzielen? –

1

ich auf diese Frage kam, da ich auch die gleiche Frage haben war, aber ich habe eine Idee, aber haben versucht, es noch nie, aber man kann es vielleicht schneller ausgeführt und besser als ich. Ich denke, Eventbus (https://github.com/greenrobot/EventBus) kann eine Lösung sein, wenn es eine Änderung in der lokalen Datenbank gibt (hinzufügen, löschen, aktualisieren) können Sie ein Ereignis benachrichtigen, und in Ihrer Aktivität sollten Sie einen Ereignis-Listener haben, der den Inhalt neu laden wird -Abfrage) nach Erhalt des Ereignisses.

Verwandte Themen