我想在活動被銷燬時在視圖中進行一些清理。當活動被銷燬時,有沒有辦法在視圖中獲得回調?我嘗試使用onDetachedFromWindow
,但我不確定這是否是正確的事情。如何檢測視圖的父級活動是否被破壞
7
A
回答
1
瞭解到onDestroy並不保證被調用,您可以在活動onDestroy方法中回調您的視圖。
編輯迴應評論: 您可以通過在佈局中給它一個id並調用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);
}
6
如果你想獲得一個回調,而不必過載View.onDetachedFromWindow()
方法,您可以使用View.addOnAttachStateChangeListener()
方法,該方法將回調監聽器作爲單個參數。
+1
僅適用於API> 12 – 2015-01-28 16:52:43
相關問題
- 1. 如何檢測圖像路徑是否被破壞?
- 2. Android:檢測視圖的父活動是否暫停
- 3. 活動已被破壞FragmentTransaction.commit()
- 4. java.lang.IllegalStateException:活動已被破壞
- 5. 活動不被破壞
- 6. Rails如何自動檢查鏈接是否被破壞?
- 7. 適配器上的檢測項目視圖已被破壞
- 8. 如何檢測ViewController是否被激活?
- 9. 拍照時被破壞的活動
- 10. 破壞骨幹視圖是否會破壞它?
- 11. 如何檢查'破壞性'按鈕是否被按下(UIActionSheet-iPhone)?
- 12. 如何在活動破壞視圖時刪除withEndAction runnable?
- 13. Android FragmentTransaction commit() - 活動已被破壞
- 14. IllegalStateException活動已被破壞錯誤android
- 15. ChildFragmentManager java.lang.IllegalStateException:活動已被破壞
- 16. 在活動被破壞後運行Bindservice
- 17. 活動已被破壞在fragmenttransaction.commit
- 18. 檢查活動是否存在視圖
- 19. J2ME的Integer.parseInt()是否被破壞?
- 20. 當父事件結束時,子監聽器是否被破壞?
- 21. 如何檢測紋理何時被破壞
- 22. 如何銷燬Android活動被破壞時的本機進程
- 23. backbone.js視圖事件不被破壞
- 24. 當視圖被破壞時CoreData泄漏
- 25. Caliburn.Micro視圖在Popup中不被破壞
- 26. 如何檢測視圖控制器是否被解僱
- 27. 如何動態破壞NHibernation級聯
- 28. z80分割算法是否被破壞?
- 29. 內存是否會被破壞?
- 30. ScriptIntrinsicYuvToRGB或YUV420分配是否被破壞?
您能否詳細說明一下。我的自定義視圖類是單獨包的一部分,此視圖在佈局xml中定義。因此,從活動類中調用某些視圖是不可行的。 – bhups 2010-06-30 08:57:07
「因此,從活動類中調用某些視圖是不可行的。」就是這樣。調用'findViewById()',獲取小部件,將其轉換爲適當的類,然後調用它。這就是說,'onDetachedFromWindow()'似乎是對我來說合理的選擇。 – CommonsWare 2010-06-30 09:20:49
@CommonsWare你評論的速度比我可以編輯的更快。順便說一句,謝謝你所做的所有工作。你的書/代碼/答案對我來說是非常寶貴的。 – 2010-06-30 09:26:10