Как предотвратить перезагрузку Android CursorLoader? - PullRequest
0 голосов
/ 02 июня 2018

Я пишу приложение для изучения словаря Android.

На MainActivity, я использую CursorLoader для загрузки словаря список из база данных .

Когда пользователь нажимает next button, текущий статус словаря будет обновлен.

Но каждый раз, когда статус словаря обновляется, onLoadFinished вызывается и передается новый курсор.

Я знаю, что это потому, что я использую ContentProvider и устанавливаю уведомление URI, но когда я обновляю словарный статус, я использую URI с определенным id:

ContentValues cv = new ContentValues();
cv.put(VocabularyContract.VocabularyEntry.COLUMN_STATUS, status);    
getContentResolver().update(ContentUris.withAppendedId(VocabularyContract.VocabularyEntry.CONTENT_URI, vocabId),
            cv,
            null,
            null);

Но uri, используемый в onCreateLoader, отличается, без id:

CursorLoader learnCursorLoader = new CursorLoader(this,
                        VocabularyContract.VocabularyEntry.CONTENT_URI,
                        null,
                        VocabularyContract.VocabularyEntry.COLUMN_STATUS + "=" + VocabularyContract.VocabularyEntry.STATUS_LEARNING,
                        null,
                        null);

Почему он все еще перезагружается?Как предотвратить его перезагрузку?

...