可以使用ViewModel来解决LiveData泄漏问题。在Fragment中创建ViewModel,并从ViewModel中观察LiveData,而不是从Activity中观察LiveData。这样当Fragment被销毁时,LiveData也会被自动清理,避免了泄漏。
示例代码:
// 在Fragment中创建ViewModel private MyViewModel mViewModel;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mViewModel = ViewModelProviders.of(this).get(MyViewModel.class);
// 观察LiveData
mViewModel.getLiveData().observe(this, new Observer
// ViewModel中定义LiveData
private MutableLiveData
public LiveData
// 更新LiveData数据 liveData.setValue("new data");