Task callInBackground 执行完成后,是否可以在 UI 线程上显示消息或进行更改?
如下所示:
Task.callInBackground(new Callable<String>() {
@Override
public String call() {
for(int i=0; i<3; i++){
Log.i("I=", String.valueOf(i));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
String obj = "";
return null;
}
}).onSuccess(new Continuation<String, Object>() {
@Override
public Object then(Task<String> task) throws Exception {
Log.i("I=", "Counter complete");
Toast.makeText(MainLoanMemberActivity.this, "Finished", Toast.LENGTH_SHORT).show();
btnAgriLoan.setText("LOL");
return null;
}
});
目前没有显示 Toast 消息,也没有崩溃。
在 Bolts 框架中寻找 AsyncTask 的 onPostExecute 的等效项,可以在其中添加对 UI 的更改。