鸿蒙和安卓都是一样的视图操作都需要在主线程或者UI(视图线程)中处理,否则就会报错。
在安卓中可以通过:
View.post(new Runnable() {
@Override
public void run() {
textView.setText("更新textView");
}
});
runOnUiThread(new Runnable() {
public void run() {
textView.setText("更新textView");
}
}
// 主线程
Handler handler = new Handler();
// 子线程
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
}
});
鸿蒙则可以通过:
getUITaskDispatcher().asyncDispatch(new Runnable() {
@Override
public void run() {
}
});
getMainTaskDispatcher().asyncDispatch(new Runnable() {
@Override
public void run() {
}
});
通过源码可以看到:
sync - 同步, async - 异步