Я пишу приложение для изучения словаря 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);
Почему он все еще перезагружается?Как предотвратить его перезагрузку?