Я пытаюсь, чтобы пользовательский CursorAdapter работал правильно.Мой код , кажется, работает хорошо.Но, основываясь на документации для Android, я боюсь, что это может быть неверным в некоторых смыслах.
public class MyArrayAdapter extends CursorAdapter {
public MyArrayAdapter(Activity context, Cursor cursor) {
super(context, cursor, false);
....
}
...
}
Комментарий для этого конструктора гласит:
"Конструктор, который позволяет контролировать авто-requery. Рекомендуется не использовать это, а вместо этого CursorAdapter (Context, Cursor, int). При использовании этого конструктора всегда устанавливается FLAG_REGISTER_CONTENT_OBSERVER. "
и документы FLAG_REGISTER_CONTENT_OBSERVER говорят:
"Будьте осторожны при использовании этого флага: вам нужно будет отключить текущий курсор от адаптера, чтобы избежать утечек из-за его зарегистрированных наблюдателей."
Оказывается, этохорошо известная проблема, но все предложенные мной альтернативы указывают на пакет совместимости или API11.Мне нужно написать код для v2.1, и я хочу избежать использования пакета совместимости в этом проекте.
Я ищу либо объяснение, каково влияние использования вышеупомянутого конструктора, и как правильно действоватьс последствиями или альтернативной реализацией.Как именно «сбросить текущий Курсор с адаптера»?
Связанные вопросы, указывающие на пакет совместимости:
Замена для SimpleCursorAdapter?
Какой CursorAdapter я должен использовать?