2011-02-14 112 views
4

我目前遇到了有关小部件的问题。我使用的是Droid 2手机,当我打开键盘时,屏幕旋转,我的小部件从不调用onUpdate()函数调用。当Android主屏幕旋转时,不会调用小部件onUpdate()

在努力调试我改写了的onReceive(),并注意到,在屏幕旋转后,我得到的意图行动的问题:

com.motorola.blur.home.ACTION_WIDGET_ADDED 

屏幕旋转后,TextViews失去他们的内容,所以我需要能够在旋转后设置文本。我通常在onUpdate()调用中设置文本。

任何人有任何想法为什么这个问题?我敢肯定,我做错了什么......

感谢,

-Jona

+1

你有什么具体问题?当方向改变时,widget是否旋转?如果家庭应用程序使用小部件的内容维护一个位图,并且在屏幕旋转过程中其几何形状不会改变,那么就没有理由通过强制更新来浪费CPU周期。 – Blrfl 2011-02-14 18:44:31

+0

问题不在于实际的用户界面。问题是,在屏幕旋转后,TextView被重置,所以我需要更新文本。 – Jona 2011-02-15 03:49:26

回答

7

大量的测试后,并在网上搜索,我意识到一些有关小工具很重要。

当屏幕旋转并且需要恢复widget时,Android系统将使用上次RemoteViews更新中的数据恢复它。

我正在更新部件的部件分开,所以当它需要恢复只有一部分得到更新。

此修复程序会一次更新RemoteView上的所有内容。