Как автоматически повторно запросить с LoaderManager

У меня есть приложение, которое показывает данные из базы данных SQLite, и данные постоянно меняются, поэтому, очевидно, я подумал, что мне следует использовать LoaderManager для отображения данных.

я прочитал немного об использовании LoaderManager с SQLite и увиделАлекс Локвуд ответ о реализации CursorLoader и его использовании, и я увиделэтот ответ об использовании CursorLoader непосредственно в БД SQLite вместо ContentProvider и начал использовать commonsware'sLoaderex.

Я создал этот класс для отображения данных в 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);
    }
}

проблема начинается, когда база данных изменяется с BroadcastListener, когда действие все еще выполняется.

в основном то, что я ищу, это в режиме реального времени наблюдать за изменениями базы данных, но, кажется, (также изДокументация Android что мне нужно позвонитьrestartLoader функция, когда я хочу повторно запросить БД).

Есть ли способ автоматизировать повторный запрос за кулисами?

ОБНОВИТЬ:

Сначала я хотел создать функцию, которая перезапускает загрузчик, примерно так:

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

но это кажется грубым и не лучшим способом сделать это.

Ответы на вопрос(1)

Ваш ответ на вопрос