public class MyFragment extends Fragment { private MyViewModel mViewModel; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { // Get the ViewModelProvider ViewModelProvider viewModelProvider = new ViewModelProvider(requireActivity()); // Get the ViewModel object mViewModel = viewModelProvider.get(MyViewModel.class); // Other initialization code... return inflater.inflate(R.layout.fragment_my, container, false); } } public class MyFragment extends Fragment { private MyViewModel mViewModel; private LiveData<String> mData; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { // Get the ViewModelProvider ViewModelProvider viewModelProvider = new ViewModelProvider(requireActivity()); // Get the ViewModel object mViewModel = viewModelProvider.get(MyViewModel.class); // Observe the LiveData only when necessary if (mData == null) { mData = mViewModel.getData(); mData.observe(getViewLifecycleOwner(), new Observer<String>() { @Override public void onChanged(String data) { // Handle data update } }); } // Other initialization code... return inflater.inflate(R.layout.fragment_my, container, false); } } kotlin @Composable fun MyScreenContent() { val data = remember { mutableStateOf("") } LaunchedEffect(Unit) { // Perform background IO operation withContext(Dispatchers.IO) { // Simulate a network request delay(1000) data.value = "Updated data" } } // UI code... }


上一篇:
下一篇:
切换中文