Android - onLoadFinished nicht genannt

Ich bin vor ein Problem mit der Loader.

Habe ich eine Tätigkeit, die zeigt Liste der abgerufenen Datensätze aus der lokalen DB. Wenn die Aktivität beginnt, die Datensätze werden automatisch geladen, über LoaderManager.initLoader () - Methode.

Es besteht auch die Möglichkeit zur manuellen Aktualisierung der Liste über die Schaltfläche "aktualisieren" in ActionBarSherlock. Doch nach Abschluss einer anderen Aktivität, die fügt einen Datensatz zu DB, onLoadFinished ist nicht genannt.

Ich bin mit SimpleCursorLoader und hier ist das code-snippet aus der Tätigkeit:

@Override
public void onStart() {
   ...
   getSupportLoaderManager().initLoader(0, null, this);
}

@Override
public void onPause() {
   ...
   getSupportLoaderManager().destroyLoader(0);
}

public void refreshRecords() {
   getSupportLoaderManager().restartLoader(0, null, this);
}

@Override
public Loader<Cursor> onCreateLoader(int id, final Bundle args) {
Loader<Cursor> l = new SimpleCursorLoader(this) {
    @Override
    public Cursor loadInBackground() {
        return recordDAO.getCursor();
    }
};
l.forceLoad();
return l;
}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor c) {
   //updateUI
}

@Override
public void onLoaderReset(Loader<Cursor> loader) {
}

Das Problem ist, dass nach Beendigung der anderen Tätigkeit, onLoaderCreate genannt wird, aber onLoaderFinished ist nicht genannt.

nach einigem Debuggen habe ich herausgefunden, dass SimpleCursorAdapter.deliverResults() auch nennt, bud landet auf .. if (isReset()) { ..

Bin ich etwas fehlt? Wie zu zwingen, das laden von Daten?

Danke im Voraus

Möglicherweise finden Sie die Lösung hier stackoverflow.com/questions/31413584/... oder hier stackoverflow.com/questions/7166363/...

InformationsquelleAutor petlack | 2013-04-15

Schreibe einen Kommentar