gpt4 book ai didi

android - 如何强制更新配置 Activity ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:17:56 28 4
gpt4 key购买 nike

我正在编写一个带有配置 Activity 的小部件,当它的 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 的逐字记录. widget_id 保存在 Activity 的 onCreate() 期间挖掘的小部件 ID。

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

  • onReceive() 获取一个 ACTION_APPWIDGET_ENABLED 如果它是第一个。
  • onUpdate() 被调用(在其中我检测到小部件未配置并绘制一些东西作为默认操作)。
  • 出现配置 Activity 。
  • 当我按下 OK 时,上面的 ok() 方法被调用。

该方法一直执行到 finish() 并且配置 Activity 消失了,但是没有调用 onUpdate()onReceive( ) 在此之后。 (小部件本身没有 updatePeriodMillis。)我最终在屏幕上看到一个小部件,它具有我的默认操作的结果,但永远不会更新。

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

我在强制更新的过程中是否遗漏了什么?

谢谢!

最佳答案

事实证明这是可行的:

new MyWidgetProviderClass()
.onUpdate(this,
AppWidgetManager.getInstance(this),
new int[] { widget_id }
);

关于android - 如何强制更新配置 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3818545/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com