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);
}
}