title: Android ViewModel/MutableLiveData onChanged gets called in a new fragment when data has not changed
body: <p>I am running into a problem with Android Mutable Live Data and it might be because of my poor understanding. The scenario is I have 3 lists in my Android tabs.</p>
  
  <pre><code>public void openSort(SortType sortType) {
      mSortType.postValue(sortType);
  }
  
  public MutableLiveData&lt;SortType&gt; getOpenSort() {
      return mSortType;
  }
  </code></pre>
  
  <p>In my activity I have my first fragment open. In that I call the </p>
  
  <blockquote>
    <p>public void openSort(SortType sortType)</p>
  </blockquote>
  
  <p>Everything works fine so far. Then I go ahead and open another tab which has the second fragment. This second fragment in its </p>
  
  <pre><code>public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       SortOrderViewModel sortOrderViewModel = ViewModelProviders.of(getActivity()).get(SortOrder.class);
       sortOrderViewModel.observe(this, new Observer() {
              @Override
              public void onChanged(SortType sortType) {
                   // Debug print
              }
       })
  }
  </code></pre>
  
  <p>For some reason the onChanged of the second fragment gets called too. My assumption was that the onChanged method only gets called when the data changes in the view model, but it seems the data is stored by the LiveData and the observers are notified again. </p>
  
  <p>Is there something that we can do such that the fragment is "only" notified when the mutable live data has changed?    </p>