Отслеживание представления, добавленного в WindowManager (нет функции findViewById ()?)

В моей службе я добавляю представление в WindowManager с помощью addView () . Когда я готов скрыть представление, я вызываю removeView () , используя ссылку View . Это прекрасно работает - в большинстве случаев.

Иногда у меня есть отчеты о принудительном закрытии, в которых говорится, что View не привязан к WindowManager . Это имеет смысл. Проблема в том, что я думаю, что Android убивает службу, и когда пришло время скрыть представление, он пытается удалить View из неправильного View .

Я попытался проверить, чтобы View был быть нулевым, но, видимо, на данный момент это не тот объект, который подключен к WindowManager . Кажется, что если ссылка на представление потеряна, нет возможности снова получить к ней доступ.

Как я могу получить эквивалент findViewById () в самом WindowManager ? Удаляется ли представление автоматически из WindowManager , если моя служба остановлена ​​(убита)? Есть ли способ сохранить ссылку на View , чтобы, если служба остановлена, я все равно мог удалить View позже (я также пытаюсь избежать утечки ] View )?

17
задан CAMOBAP 9 September 2015 в 19:27
поделиться