public class MyLiveData extends LiveData<String> { // ... } myLiveData.observe(this, new Observer<String>() { @Override public void onChanged(String value) { } }); myLiveData.setValue("New Value"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myLiveData.observe(this, new Observer<String>() { @Override public void onChanged(String value) { } }); } @Override protected void onDestroy() { super.onDestroy(); myLiveData.removeObservers(this); } gradle implementation "androidx.lifecycle:lifecycle-viewmodel:2.3.1" implementation "androidx.lifecycle:lifecycle-livedata:2.3.1" public class MyLiveData extends LiveData<String> { private MutableLiveData<String> data = new MutableLiveData<>(); public void updateData(String value) { data.setValue(value); } @Override protected void onActive() { } @Override protected void onInactive() { } } public class MyViewModel extends ViewModel { private MyLiveData myLiveData = new MyLiveData(); public LiveData<String> getData() { return myLiveData; } public void updateData(String value) { myLiveData.updateData(value); } } public class MainActivity extends AppCompatActivity { private MyViewModel myViewModel; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myViewModel = new ViewModelProvider(this).get(MyViewModel.class); myViewModel.getData().observe(this, new Observer<String>() { @Override public void onChanged(String value) { } }); } @Override protected void onDestroy() { super.onDestroy(); myViewModel.getData().removeObservers(this); } }


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