2014-05-05 114 views
0

我實現了一個片段,並覆蓋其整個生命週期callbackas如下:片段生命週期的問題

@Override 
    public void onActivityCreated(final Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     dactivity = getActivity(); 
     dactivity.bindService(new Intent(dactivity,EventosDatabaseService.class), this, 0); 
    } 
    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     dactivity.unbindService(this); 
    } 

據記載,onActivityCreated調用必須heppen之前的onDestroy,那麼怎麼來的,我得到NullPointerException異常拋出,因爲dactivity爲空onDestroy?我應該怎樣做才能避免它,同時確保綁定不會產生泄漏?

順便說一句,這個片段的RetainInstance是假的,如果是麥特斯

+0

調用super.onDestroy(之前一定要解除綁定) – DroidBender

+0

好生病嘗試... –

+0

理想情況下,你應該在的onResume綁定和取消綁定上的onPause。你有沒有使用onPause和其他方法?你可以在這裏發佈整個片段代碼嗎?只要看看你粘貼的部分,一切都很好。 – Nazgul

回答

1

嘗試在Fragment.onResume與如有註冊廣播監聽器綁定你的服務,並使用Fragment.onPause解除綁定服務,並註銷聽衆

1

祝圖像我張貼可以提供更好的理解,以弄清楚如何fragments工作。 enter image description here