如何防止android小部件执行android.appwidget.action.APPWIDGET_UPDATE

时间:2013-09-06 02:19:16

标签: android widget broadcast

我成功编写了一个小部件,它按我想要的方式工作。我只是想在用户点击小部件时做一些事情,我正在更新小部件内的图像。

当我点击小部件时,我的代码运行,一切都很好!但是,在点击我的小部件几秒钟后,运行了android.appwidget.action.APPWIDGET_UPDATE广播。

我正在使用onReceive()来做我所有的事情。这是我未决的意图:

Intent intent = new Intent(context, Widget.class);
    intent.setAction("CLICKED_WIDGET");
    PendingIntent pIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

我使用自定义广播字符串表示我点击了小部件。这非常有效。然而,几秒钟后,android.appwidget.action.APPWIDGET_UPDATE也会被广播。如果我不对这个广播做任何事情,我的小部件是空的。所以现在我正在做的只是在每次发送更新广播时重新更新小部件(这非常烦人)。

我要问的是,如何保持更新广播不被发送,只有当用户点击窗口小部件而不是任何其他时间时才更新我的窗口小部件。

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,所以它确实不是我的问题的答案,因为它不可能不接收APPWIDGET_UPDATE广播。但我发现导致更新广播的原因是,在我的onClick接收器中,我正在更改接收器的组件启用设置,这是由于某种原因发送了更新广播。所以我只是将我的组件启用选项更改为我的设置活动,现在它完美运行。感谢大家的观看!