RecyclerView вызывает onViewRecycled при завершении анимации. Почему? Как это отключить?
В моем приложении при вызове метода onBindViewHolder для элементов RecyclerView сохраняется ссылка на некий объект, а при вызове метода onViewRecycled, ссылка на этот объект уничтожается для предотвращения утечки памяти.
После изменения данных вызывается метод notifyDataSetChanged, при этом перерисовка элементов RecyclerView выполняется с анимацией (анимация по умолчанию) и для всех перерисовываемых элементов RecyclerView сначала вызывает метод onBindViewHolder, а потом при завершении анимации вызывает onViewRecycled и в результате, ссылка на объект которая была сохранена ранее в onBindViewHolder, уничтожается. Это приводит к ошибке NullPointerException.
Другое решение мне не подходит. Эта ссылка должна существовать только пока существует View элмента списка.
Если отключить анимацию, то метод onViewRecycled не вызывается и программа работает без ошибок. Почему RecyclerView так работает? Как мне хранить ссылку на объект, который должен уничтожаться при уничтожении View элементов списка, не отключая анимацию?