我写了一个Android时钟小部件。 小部件包括gif动画。
我的小部件拥有自己的服务,可以维护其视图。和播放动画的线程。
由于不明原因,在小部件启动后的某个时间点,它停止播放动画,就好像视图freez一样。起初我以为底层服务破了,或者其中一个线程陷入僵局。
我发现一切都运行得很好,只有视图不会改变。
如果这是一个普通的应用程序视图,我原以为我应该在视图上调用invalidate() - 但是RemoteViews没有这样的调用。
任何人都有类似问题的经验吗?
答案 0 :(得分:-1)
我认为您可以从非UI线程调用invalidate()。 invalidate()方法只需要在UI线程中调用。如果是这种情况,请使用postInvalidate()而不是invalidate()。
有关详细信息,请参阅以下文档,
http://developer.android.com/reference/android/view/View.html#postInvalidate%28%29