一个简单的MVVM Demo

public class TestActivity extends FragmentActivity {
    Lifecycle lifecycle;
    TestViewModel testViewModel;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        lifecycle = getLifecycle();
        testViewModel = ViewModelProviders.of(this).get(TestViewModel.class);
        testViewModel.getAfterTask().observe(this, new Observer<Boolean>() {
            @Override
            public void onChanged(@Nullable Boolean aBoolean) {
                //dosomthing UI 
            }
        });

    }

}

Activity部分

ViewModel部分


public class TestViewModel extends AndroidViewModel {

    public MutableLiveData<Boolean> afterTask;
    public TestViewModel(@NonNull Application application) {
        super(application);
    }

    public void doSomeThing(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                //do somthimg
                getAfterTask().postValue(true);
            }
        }).start();
    }

    public MutableLiveData<Boolean> getAfterTask(){
        if(afterTask == null){
            afterTask = new MutableLiveData<>();
        }
        return afterTask;
    }
}

异步执行任务,然后activity中去改变Ui

猜你喜欢

转载自blog.csdn.net/soybeen/article/details/85935001