public class MyActivity extends AppCompatActivity implements LifecycleOwner {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getLifecycle().addObserver(this);
}
}
public class MyViewModel extends ViewModel {
private MutableLiveData<String> data;
public LiveData<String> getData() {
if (data == null) {
data = new MutableLiveData<>();
loadData();
}
return data;
}
private void loadData() {
}
}
public class MyActivity extends AppCompatActivity implements LifecycleOwner {
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 data) {
}
});
}
}
public class MyActivity extends AppCompatActivity implements LifecycleOwner, LifecycleObserver {
// ...
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void startObserving() {
myViewModel.getData().observe(this, new Observer<String>() {
@Override
public void onChanged(String data) {
}
});
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void stopObserving() {
myViewModel.getData().removeObservers(this);
}
}
public class MyActivity extends AppCompatActivity implements LifecycleOwner {
private MyViewModel myViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myViewModel = new ViewModelProvider(this).get(MyViewModel.class);
// ...
}
}