android - 如何处理appWidgets容器的重启?

时间:2012-01-26 17:58:30

标签: android click android-appwidget android-pendingintent

我正在创建appWidget容器和appWidgets。 我有一个问题,我认为是因为创建的appWidgets - 每次重新启动(杀死然后打开)appWidget容器时,都会显示appWidget,但它不再处理点击。 这发生在每个appWidget容器(启动器甚至widgetLocker)上,这就是为什么我怀疑它是因为appWidget。

我在网上尝试了很多教程,但我找不到任何关于这个问题的参考资料。 也许不应仅仅在onUpdate方法上创建按钮的意图(ok,pendingIntents)的准备?如果是的话,我应该在哪里添加它?我已经在onReceive上添加了它,但它需要很长时间才会发生(如果有的话)。

我会在这里添加一些代码,但是在线的任何代码都给了我相同的结果。

请帮忙。

1 个答案:

答案 0 :(得分:-1)

好的,我不确定导致问题的原因,但这是解决方案。简而言之:

onUpdate(...)
  {
  super.onUpdate(context, appWidgetManager, appWidgetIds);
  for (int appWidgetId: appWidgetIds)
    {
    //Prepare remoteViews, including registration of their clicks events...
    appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
    }
  }

onReceive(...)
  {
  if (intent.getAction().equals(ACTION_BUTTON_CLICKED))
    {
    //Get needed data from the customized intent.
    //Prepare remoteViews of what should be updated, including
    //registration of their clicks events...
    appWidgetManager.updateAppWidget(appWidgetId, remoteViews)
    }
  }