android – 如何在配置活动中强制更新?

发布时间:2019-05-18 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了android – 如何在配置活动中强制更新?脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个带有配置活动的小部件,当单击其OK按钮时,该小部件调用以下方法:
private void ok()
{
    // ...Do Widget Configuration...

    // Force an update
    Context context = getApplicationContext();
    RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.widget);
    AppWidgetManager.getInstance(context).updateAppWidget(widget_id,views);

    // Return the expected result
    Intent result = new Intent();
    result.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,widget_id);
    setResult(RESULT_OK,result);

    finish();
}

这几乎是从the documentation逐字逐句.tidget_id保存在活动的onCreate()期间挖出的小部件ID.

当我在主屏幕上放置小部件的实例时,我已经验证我得到了预期的事件序列:

> onReceive()获取ACTION_APPWIDGET_ENABLED,如果它是第一个.
> onUpdate()被调用(我在其中检测到未配置窗口小部件并将某些内容绘制为默认操作).
>出现配置活动.
>当我按OK时,上面的ok()方法被调用.

该方法一直到finish()并且配置活动消失,但在此之后没有调用onUpdate()或onReceive(). (小部件本身没有updatePeriodMillis.)我最终在屏幕上显示了一个小部件,该小部件具有我的默认操作的结果但从未得到更新.

如果我在没有配置活动的情况下设置窗口小部件,它会在创建时更新,并且一切都按预期工作(只是没有配置的位).

我在强制更新的方式中遗漏了什么吗?

谢谢!

解决方法

结果证明有效:
new MyWidgetProviderClass()
  .onUpdate(this,AppWidgetManager.getInstance(this),new int[] { widget_id }
   );

总结

以上是脚本之家为你收集整理的android – 如何在配置活动中强制更新?全部内容,希望文章能够帮你解决android – 如何在配置活动中强制更新?所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。
标签: