一个视图可有一个人请告诉我如何更新在预定期限的视图。例如每秒钟。那我有如何更新预定期限
MyService.wm.updateViewLayout(mView, mLayoutParams);
问题是,当我用了一个定时器它在不同的线程上运行,它是不允许我更新视图,并给予下列错误。
1月4日至8日:19:35.910:W/dalvikvm(11040):线程ID = 13:螺纹与未捕获的异常(组= 0x40a3e1f8)1月4日至8日离开 :19:35.910: E/AndroidRuntime (11040):致命例外:Thread-1376 04-08 01:19:35.910:E/AndroidRuntime(11040): android.view.ViewRootImpl $ CalledFromWrongThreadException:只有创建视图层次结构的 原始线程可以触摸其视图。 01/19:35.910:E/AndroidRuntime(11040):at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4039)04-08 01:19:35.910:E/AndroidRuntime(11040): Android.view.View.requestLayout(View.java:12680)04: 01:19:35.910:E/AndroidRuntime(11040):at android.view.View.requestLayout(View.java:12680)04 -08 01:19:35.910: E/AndroidRuntime(11040):at android.view.View.setLayoutParams(View.java:8223)04-08 01:19:35.910: E/AndroidRuntime(11040):at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:312) 04-08 01:19:35.910:E/AndroidRuntime(11040):at android.view.WindowManagerIm pl $ CompatModeWrapper.updateViewLayout(WindowManagerImpl.java:145) 04-08 01:19:35.910:E/AndroidRuntime(11040):at com.example.MyService.UpdateLayers(TrackerService.java:353) 04-08 01 :19:35.910:E/AndroidRuntime(11040):在 com.example.MainActivity $ 5 $ 1.run(MainActivity.java:219)
当我试图从同一活动或服务的更新它挂起而没有做任何其他事情。只是在循环中运行。
while (true) {
MyService.UpdateLayers();
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
所以,你能告诉我正确的方法来做到这一点或解决更新图层。
谢谢我会试试这个 – SAN 2013-04-08 21:46:00