public class MyActivity extends AppCompatActivity {
private static final String TAG = "MyActivity";
private MyViewModel myViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
myViewModel = ViewModelProviders.of(this).get(MyViewModel.class);
myViewModel.getData().observe(this, new Observer<String>() {
@Override
public void onChanged(String data) {
Log.d(TAG, "Data changed: " + data);
// Update UI with the new data
}
});
// Perform some heavy tasks
// ...
myViewModel.updateData("New data");
}
}
groovy
dependencies {
implementation "android.arch.lifecycle:runtime:1.1.1"
implementation "android.arch.lifecycle:extensions:1.1.1"
annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
}
<application
...
android:name=".MyApplication"
...>
...
</application>
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Enable Arch Runtime
ArchRuntime.enable(this);
}
}