我想TextView
从 Android 应用程序中的异步任务更新 a。用 a 执行此操作的最简单方法是什么Handler
?
有一些类似的问题,例如:Android update TextView with Handler,但例子很复杂,似乎没有答案。
我想TextView
从 Android 应用程序中的异步任务更新 a。用 a 执行此操作的最简单方法是什么Handler
?
有一些类似的问题,例如:Android update TextView with Handler,但例子很复杂,似乎没有答案。
有几种方法可以更新您的 UI 并从 UI 线程外部修改一个View
,例如。TextView
AHandler
只是一种方法。
这是一个示例,它允许单个Handler
响应各种类型的请求。
在类级别定义一个简单的Handler
:
private final static int DO_UPDATE_TEXT = 0;
private final static int DO_THAT = 1;
private final Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
final int what = msg.what;
switch(what) {
case DO_UPDATE_TEXT: doUpdate(); break;
case DO_THAT: doThat(); break;
}
}
};
在您的一个函数中更新 UI,该函数现在位于 UI 线程上:
private void doUpdate() {
myTextView.setText("I've been updated.");
}
从您的异步任务中,向Handler
. 有几种方法可以做到这一点。这可能是最简单的:
myHandler.sendEmptyMessage(DO_UPDATE_TEXT);
您也可以通过这种方式从后台线程更新 UI 线程:
Handler handler = new Handler(); // write in onCreate function
//below piece of code is written in function of class that extends from AsyncTask
handler.post(new Runnable() {
@Override
public void run() {
textView.setText(stringBuilder);
}
});