有人可以告诉我如何在预定期间更新视图。例如每秒。
MyService.wm.updateViewLayout(mView, mLayoutParams);
我遇到的问题是,当我使用在不同线程上运行的计时器时,它不允许我更新视图并给出以下错误。
04-08 01:19:35.910: W/dalvikvm(11040): threadid=13: 线程退出未捕获异常 (group=0x40a3e1f8) 04-08 01:19:35.910: E/AndroidRuntime(11040): 致命异常: 线程-1376 04-08 01:19:35.910: E/AndroidRuntime(11040): android.view.ViewRootImpl$CalledFromWrongThreadException: 只有创建视图层次结构的原始线程才能触摸其视图。04-08 01:19:35.910: E/AndroidRuntime(11040): 在 android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4039) 04-08 01:19:35.910: E/AndroidRuntime(11040): 在 android. view.ViewRootImpl.requestLayout(ViewRootImpl.java:709) 04-08 01:19:35.910: E/AndroidRuntime(11040): 在 android.view.View.requestLayout(View.java:12680) 04-08 01:19: 35.910: E/AndroidRuntime(11040): 在 android.view.View.setLayoutParams(View.java:8223) 04-08 01:19:35.910: E/AndroidRuntime(11040):
当我尝试从同一个 Activity 或服务更新它时,它会挂起而不做任何其他事情。只是在循环中运行。
while (true) {
MyService.UpdateLayers();
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
那么,您能否告诉我正确的方法来执行此操作或解决更新图层的问题。