Как определить, уничтожается ли родительская активность представления - PullRequest
7 голосов
/ 30 июня 2010

Я хочу сделать некоторую очистку в представлении, когда действие разрушается. Есть ли способ получить обратный вызов в представлении, когда действие уничтожается? Я пытался использовать onDetachedFromWindow, но я не уверен, что это правильно.

Ответы [ 2 ]

7 голосов
/ 07 июля 2013

Если вы хотите получить обратный вызов без перегрузки метода View.onDetachedFromWindow(), вы можете использовать метод View.addOnAttachStateChangeListener(), который принимает прослушиватель обратного вызова в качестве одного параметра.

1 голос
/ 30 июня 2010

С пониманием того, что onDestroy не гарантированно вызывается, вы можете просто вызвать обратный вызов в своем представлении в действиях метода onDestroy.

Редактировать в ответ на комментарий: Вы можете получить любое представление, указав ему идентификатор в макете и вызвав findViewById. Вот пример:

Layout.xml (показывает только минимум)

<LinearLayout>
  <com.example.superwidget.DropDownTouchEnabledListView
    android:id="@+id/special_list_view" />
</LinearLayout>

MyActivity.java (опять же, минимально и при условии правильного импорта)

@Override
void onDestroy() {
    DownTouchEnabledListView v = (DownTouchEnabledListView)findViewById(R.id.special_list_view);
    v.doCallback(with, parameters);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...