2014-11-09 7 views
0

Некоторые контексты:Просьба уточнить поведение addObserver и deleteObserver в классе Observable?

Я создаю наблюдателя в классе Activity и добавляю его в класс Observable в методе onCreate Activity. Наблюдаемый по существу удерживается классом Application. Я удалю его из наблюдаемого в onDestroy. Однако похоже, что существует некоторая возможность того, что onDestroy не будет вызван или что не все коды в onDestroy гарантированно будут выполнены. Поскольку есть ссылка на объект во внешнем классе (в наблюдаемом), я беспокоюсь, что объект будет сохраняться.

Если наблюдатель переживает активность, и активность воссоздана, будет создан и добавлен Наблюдаемый другой наблюдатель с тем же типом. В этом случае удаляется существующий наблюдатель того же типа?

Я могу найти это с проб и ошибок, но на самом деле я не нашел ответа на этот вопрос в другом месте.

ТЛ; др:

Если я создаю две отдельные классы Observer одного и того же типа, и добавить их обоих к одному наблюдаемого класса в Java, будет Java заменить первый наблюдатель при добавлении второй один?

Ссылаясь на эту документацию: http://developer.android.com/reference/java/util/Observable.html

Это не ясно для меня, если это так.

ответ

1

Существующий наблюдатель не будет удален. Вы можете увидеть это в исходном коде Observable. Созданные объекты разные, несмотря на то, что они имеют один и тот же тип. Оба они добавляются к вектору наблюдателей.

+0

Хороший вопрос, должен был проверить код. Спасибо за ответ! – jeff

+0

Нет проблем. –

Смежные вопросы