Jak automatycznie ponownie zapytać za pomocą LoaderManager

Mam aplikację, która pokazuje dane z bazy danych SQLite, a dane stale się zmieniają, więc oczywiście pomyślałem, że powinienem użyć LoaderManager, aby wyświetlić dane.

czy czytam trochę o używaniu LoaderManager z SQLite i widziałemOdpowiedź Alexa Lokwooda o implementacji CursorLoadera i używaniu go, i widziałemta odpowiedź o używaniu CursorLoadera bezpośrednio do DB SQLite zamiast ContentProvider i rozpoczęciu korzystania z oprogramowania commonswareLoaderex.

Stworzyłem tę klasę do wyświetlania danych w ListView:

public class LandingPageActivity extends FragmentActivity implements LoaderCallbacks<Cursor> {
    ListView list;
    SimpleCursorAdapter mAdapter;

    private SQLiteCursorLoader loader = null;
    private Context mContext;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_friends_and_threads);
        list = (ListView) findViewById(R.id.list);
        mContext = LandingPageActivity.this;

        mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, null,
                new String[] { Properties.Title.columnName }, new int[] { android.R.id.text1 }, 0);

        list.setAdapter(mAdapter);
        getSupportLoaderManager().initLoader(0, null, this);
    }

    @Override
    public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
        Context c = mContext;
        String query = "SELECT * FROM TABLE_NAME";
        SQLiteOpenHelper db = DatabaseHelper.getDatabase();
        loader = new SQLiteCursorLoader(c, db, query, null);
        return loader;
    }

    @Override
    public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
        mAdapter.changeCursor(arg1);
    }

    @Override
    public void onLoaderReset(Loader<Cursor> arg0) {
        mAdapter.changeCursor(null);
    }
}

problem zaczyna się, gdy baza danych zostanie zmieniona z „BroadcastListener”, gdy działanie nadal działa.

zasadniczo to, czego szukam, to obserwacja zmian w bazie danych w czasie rzeczywistym, ale wydaje się (również zDokumentacja Androida że muszę zadzwonić dorestartLoader funkcja, gdy chcę ponownie zapytać db).

czy istnieje sposób na zautomatyzowanie ponownego zapytania za kulisami?

AKTUALIZACJA:

Moją pierwszą myślą było stworzenie funkcji, która ponownie uruchamia program ładujący, coś w tym stylu:

public static void restartLoader(Context context){
    context.getSupportLoaderManager().restartLoader(0, null, LandingPageActivity.this);
}

ale wydaje się, że nie jest to najlepszy sposób.

questionAnswers(1)

yourAnswerToTheQuestion