dependencies { implementation 'android.arch.lifecycle:extensions:1.1.1' } public class BackgroundTask extends ViewModel { private MutableLiveData<String> resultLiveData; public LiveData<String> getResult() { if (resultLiveData == null) { resultLiveData = new MutableLiveData<>(); startBackgroundTask(); } return resultLiveData; } private void startBackgroundTask() { new Thread(new Runnable() { @Override public void run() { String result = performBackgroundTask(); resultLiveData.postValue(result); } }).start(); } private String performBackgroundTask() { return "Background task result"; } } public class MainActivity extends AppCompatActivity { private BackgroundTask backgroundTask; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); backgroundTask = ViewModelProviders.of(this).get(BackgroundTask.class); backgroundTask.getResult().observe(this, new Observer<String>() { @Override public void onChanged(String result) { showToast(result); } }); } private void showToast(String message) { Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); } }


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