onDestory
是一個Activity生命周期的最後一步,是幾乎所有資源釋放完了,才會執行。
而
finish
,是Activity執行後一定會立刻生效的。
Activity可能不會走
onDestory
,但是一定會走
finish
。
- 我們在A頁面開了一個注冊了一個廣播,當監聽到了東西就去執行 A的 a()方法,并且在onDestory方法才反注冊廣播
- 在A頁面打開了 B頁面後,A頁面可能未及時走onDestory,導緻A那一瞬間接收到了廣播,然後執行a(),而這将會導緻B頁面出現一些不可預料的事情。
- 把一些需要及時清除的資源放在
方法去釋放。比如 反注冊廣播、EventBus(視情況,看event做了什麼)、計時器finish()
- 把一些不用立馬釋放的放在
做。比如ButterKnife、一些對象的屬性設定、動畫。onDestory()