#android #android-asynctask #bolts-framework
#Android #android-asynctask #bolts-framework
Вопрос:
Возможно ли отобразить сообщение или внести изменения в поток пользовательского интерфейса после завершения выполнения задачи callInBackground?
Что-то вроде следующего:
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;
}
});
На данный момент не отображается всплывающее сообщение, а также нет сбоя.
Ищу эквивалент onPostExecute от AsyncTask в Bolts Framework, где можно добавлять изменения в пользовательский интерфейс.
Ответ №1:
Не понял, что существуют типы ИСПОЛНИТЕЛЕЙ, которые вы можете упомянуть с каждой вспомогательной функцией, например: (Задача.UI_THREAD_EXECUTOR)
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, Void>() {
public Void then(Task<String> object) throws Exception {
Toast.makeText(MainLoanMemberActivity.this, "Finished", Toast.LENGTH_SHORT).show();
btnAgriLoan.setText("LOL");
return null;
}
}, Task.UI_THREAD_EXECUTOR);
Документы помогли!