天天看點

Android 關于onDestory和finish釋放資源

​onDestory​

​​是一個Activity生命周期的最後一步,是幾乎所有資源釋放完了,才會執行。

而​​

​finish​

​,是Activity執行後一定會立刻生效的。

Activity可能不會走​

​onDestory​

​,但是一定會走 ​

​finish​

​。

  • 我們在A頁面開了一個注冊了一個廣播,當監聽到了東西就去執行 A的 a()方法,并且在onDestory方法才反注冊廣播
  • 在A頁面打開了 B頁面後,A頁面可能未及時走onDestory,導緻A那一瞬間接收到了廣播,然後執行a(),而這将會導緻B頁面出現一些不可預料的事情。
  • 把一些需要及時清除的資源放在​

    ​finish()​

    ​方法去釋放。比如 反注冊廣播、EventBus(視情況,看event做了什麼)、計時器
  • 把一些不用立馬釋放的放在​

    ​onDestory()​

    ​做。比如ButterKnife、一些對象的屬性設定、動畫。

繼續閱讀