Допустимо ли ссылаться на модель представления в качестве аргумента в другом классе? Есть ли утечки памяти?
LoadData(viewmodel)
MainFragment. java
public class MainFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//DataViewModel
DataViewModel model = new ViewModelProvider(requireActivity()).get(DataViewModel.class);
//This is the callback method with viewmodel as argument
new GetDataUtil().LoadData(model);
model.getListData().observe(getViewLifecycleOwner(), item -> item.getNote()); //UI update work in progress
return view;
}
}
GetDataUtil. java
public class GetDataUtil {
List<Note> listData = new ArrayList<>();
//Asynchronous method to load data from internet, in this case firestore
//This is what I mean when using viewmodel as parameter
public void LoadData(DataViewModel model){
//Asynchronous task start block {
listData.add(Note); //For loop add data from querysnapshot
model.getListData().setValue(listData);
//Asynchronous task end block }
}
}
DataViewModel. java
public class DataViewModel extends ViewModel {
private MutableLiveData<List<Note>> listData = new MutableLiveData<>();
public MutableLiveData<List<Note>> getListData(){
return listData;
}
}
Я все еще новичок в разработке android, было бы лучше, если бы кто-нибудь показал мне соответствующую статью или документацию, касающуюся правил использования модели просмотра, это - это то, что я пытаюсь понять. Спасибо