2011-05-16 75 views
2

我在我的应用程序中有一个小部件,它被搞砸了(它的其中一个资源,一个计数器,只有在大于0的情况下才会可见,并且它不会再对新闻发生反应)我安装/删除/更新第三方应用程序,因为onUpdate()方法可能被调用,并且我写的代码没有正确执行。Android小部件onUpdate()问题

可以肯定的是,AppWidgetManager反应如下意图:

android.intent.action.PACKAGE_ADDED 
android.intent.action.PACKAGE_REMOVED 
android.intent.action.PACKAGE_RESTARTED 

但我怎么可以让小部件不应对这样的意图,它甚至没有在清单中注册呢?

回答

0

尝试加入那些行动清单..和避免onReceive方法反应对他们来说,这是莫名其妙微不足道的解决方案,但它会做!

+0

我认为即使这是偶尔的工作:在新的应用程序安装它似乎解决了这个问题,但是当应用程序得到更新时,强制屏幕刷新仍然搞砸了我的小部件。 – user583066 2011-07-25 15:22:53

+0

虽然我在onReceive处理程序中为android.intent.action.PACKAGE_CHANGED,android.intent.action.PACKAGE_RESTARTED,android.intent.action.PACKAGE_REPLACED,但我只能不能在应用程序更新上工作。 – user583066 2011-07-28 05:20:36

0

你试过重写onReceive方法并检查意图吗?我提供了一个快速示例。

if(intent.getAction().compareTo("android.intent.action.PACKAGE_ADDED") != 0) { 
    //do something cool; 
} 

这应该允许你检查传入的意图,并过滤掉你不想要的东西