我想每x秒設置一次ImageView的背景。 使用的Drawables從服務器下載,放置在Vector中,當它們都被下載時,我啓動一個Timer和一個TimerTask,它只需在一個Activity的Layout中設置一個ImageView。TimerTask和ImageView.setBackgroundDrawable一個不走?
問題是我得到一個: android.view.ViewRoot $ CalledFromWrongThreadException:只有創建視圖層次結構的原始線程可以觸及其視圖。
我在這裏猜測這是因爲TimerTask,即使它只是從原始的Activity調用一個方法,該方法依次從本地Vector設置ImageView。
雖然每次都不會拋出這個異常,但是它通過ImageView執行的時間將不會顯示圖像,除非我通過單擊設備的「home」按鈕並恢復應用程序強制刷新。我試圖通過調用forceLayout()和requestLayout()來強制更新/刷新ImageView本身,但不會執行任何操作:(
那麼,任何想法的如何解決這些問題?我應該像Hnadler在Timer/TimerTask?這是甚至可能嗎?它會刷新我的ImageView正確嗎?
很好,似乎與post()方法的工作! 很高興你提到它,因爲這是我第一次看到它! – TiGer 2010-11-04 11:23:46