一個視圖可有一個人請告訴我如何更新在預定期限的視圖。例如每秒鐘。那我有如何更新預定期限
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