2015-09-30 73 views
2

我有一個可能有點愚蠢的問題,但我沒有找到任何答案。所以我有一個片段和一些擴展Observable的實體對象。我希望在我的實體中進行一些更改時通知我的片段,因此我在那裏實施了一個觀察者。實現觀察者模式的片段

現在我有些疑問,必須添加和刪除觀察員。我的意思是片段中最正確的回調。

現在我使用onViewCreated添加觀察者,onDestroyView刪除觀察者,但我認爲可能有更好的地方去做。

這裏是一個示例代碼:

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 

    WheelManager.getInstance().addObserver(this); 
    PreferenceManager.getInstance().addObserver(this); 
} 

@Override 
    public void onDestroyView() { 
     super.onDestroyView(); 
     WheelManager.getInstance().deleteObserver(this); 
     PreferenceManager.getInstance().deleteObserver(this); 
    } 

我將是答案非常感激。

UPD:我也瀏覽過Official Developer Guide,但是對這個問題一無所知。

+0

你究竟在做什麼更新? – JoeyJubb

+0

在片段視圖中顯示一些更新的值。 –

回答

1

正如你所說你只是更新視圖,onCreateView和onDestroyView是適用於此代碼的地方。

有一個例外,這是當你更新AdapterViews和RecyclerViews - 你可以在onAttach實例化你的適配器,並從那裏開始觀察(並停止在onDetach)。你可以將你的適配器連接到onCreateView中的視圖,而不用擔心NPE等。

+0

好的,看起來像onCreateView和onDestroyView是添加/刪除觀察者的最佳位置。 –