【问题标题】:Android widget onUpdate() issuesAndroid 小部件 onUpdate() 问题
【发布时间】:2011-07-26 00:28:16
【问题描述】:

我的应用程序中有一个小部件,每次我安装/删除/更新第 3 方应用程序,因为可能会调用 onUpdate() 方法并且我编写的代码未正确执行。

AppWidgetManager 肯定会对以下意图做出反应:

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

但是我怎样才能让小部件不对这些意图做出反应,它甚至没有在清单中为它们注册?

【问题讨论】:

    标签: android widget


    【解决方案1】:

    尝试将这些操作添加到清单中......并避免在 onReceive 方法中对它们做出反应,这在某种程度上是微不足道的解决方案,但它会做!

    【讨论】:

    • 我认为即使这样也偶尔会起作用:在安装新应用时,它似乎可以解决问题,但是当应用更新时,强制屏幕刷新仍然会破坏我的小部件。
    • 虽然我在 onReceive 处理程序中有:android.intent.action.PACKAGE_CHANGED、android.intent.action.PACKAGE_RESTARTED、android.intent.action.PACKAGE_REPLACED,但我无法让它在应用程序更新上工作。
    【解决方案2】:

    您是否尝试过覆盖 onReceive 方法并检查意图?我提供了一个简单的例子。

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

    这应该允许您检查传入的意图并过滤掉您不想要的内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-27
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多