从后台任务中的do更新android UI
我正在使用AsyncTask执行后台任务。任务处于while循环中。 如果后台任务仍在运行,如何在执行后更新UI,因为该任务不起作用 谢谢 受保护字符串doInBackground(无效…参数){从后台任务中的do更新android UI,android,user-interface,android-asynctask,Android,User Interface,Android Asynctask,我正在使用AsyncTask执行后台任务。任务处于while循环中。 如果后台任务仍在运行,如何在执行后更新UI,因为该任务不起作用 谢谢 受保护字符串doInBackground(无效…参数){ 如果要从后台线程使用UI,请在doInBackground runOnUiThread(new Runnable(){ public void run() { // update UI } 使用publishProgress方法。在onProg
如果要从后台线程使用UI,请在
doInBackground
runOnUiThread(new Runnable(){
public void run() {
// update UI
}
使用
publishProgress
方法。在onProgressUpdate
中执行的任何操作都将在UI线程上运行
private class TestAsyncTask extends AsyncTask<Void, String, Void> {
@Override
protected Void doInBackground(Void... voids) {
SystemClock.sleep(1000);
publishProgress("Test");
SystemClock.sleep(1000);
return null;
}
@Override
protected void onProgressUpdate(String... values) {
String test = values[0];
// Do something with it
}
}
私有类TestAsyncTask扩展了AsyncTask{
@凌驾
受保护的空位背景(空位…空位){
系统时钟。睡眠(1000);
出版进度(“测试”);
系统时钟。睡眠(1000);
返回null;
}
@凌驾
受保护的void onProgressUpdate(字符串…值){
字符串测试=值[0];
//用它做点什么
}
}
受保护的void onProgressUpdate(进度…值)
添加在API级别3中,在之后在UI线程上运行
调用publishProgress(Progress…)。指定的值为
传递给publishProgress(进度…)的值
参数值指示进度的值
使用BroadcastReceiver follow链接:您好,谢谢您的帮助!我一直在尝试这样做,但我无法让它正常工作……我是否应该在doInBackground中放置RunUnuithRead?是的,我在回答中提到过,您必须在doInBackground中使用它
private class TestAsyncTask extends AsyncTask<Void, String, Void> {
@Override
protected Void doInBackground(Void... voids) {
SystemClock.sleep(1000);
publishProgress("Test");
SystemClock.sleep(1000);
return null;
}
@Override
protected void onProgressUpdate(String... values) {
String test = values[0];
// Do something with it
}
}