2

我写了一个 Android 时钟小部件。该小部件包括 gif 动画。

我的小部件有自己的服务来维护其视图。和播放动画的线程。

由于不清楚的原因,在小部件启动后的某个时间点,它停止播放动画,就好像视图冻结一样。起初我以为底层服务坏了,或者其中一个线程处于死锁状态。

我发现一切运行完美,只有视图没有改变。

如果这是一个普通的应用程序视图,我会认为我应该在视图上调用 invalidate() - 但 RemoteViews 没有这样的调用。

任何人都有类似问题的经验?

4

1 回答 1

-1

我认为您可能会从非 UI 线程调用 invalidate() 。方法 invalidate() 只需要在 UI 线程中调用。如果是这种情况,请使用 postInvalidate() 而不是 invalidate()。

有关更多信息,请参阅以下文档,

http://developer.android.com/reference/android/view/View.html#postInvalidate%28%29

于 2013-11-09T17:05:57.860 回答