Android Handler.removeCallbacksAndMessages(null)的作用

今天看到一段代碼,在onDestroy()方法中,使用了下面的代碼:

   @Override
    protected void onDestroy() {
        if (handler != null && handler.getLooper() == Looper.getMainLooper()){
              handler.removeCallbacksAndMessages(null);
           }
        super.onDestroy();
    }

察看官方文檔有以下說明:
http://developer.android.com/reference/android/os/Handler.html#removeCallbacksAndMessages%28java.lang.Object%29

public final void removeCallbacksAndMessages(Object token)

Added in API level 1 Remove any pending posts of callbacks and sent
messages whose obj is token. If token is null, all callbacks and
messages will be removed.

意思是說,如果參數爲null的話,會將所有的Callbacks和Messages全部清除掉。

這樣做的好處是在Acticity退出的時候,可以避免內存泄露。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章