gpt4 book ai didi

android - 某些第 3 方小部件在应用程序升级后停止更新

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:38 25 4
gpt4 key购买 nike

我的应用程序托管用户安装的小部件,与启动器应用程序相同。

绑定(bind)小部件后,一切正常。小部件是自动创建和更新的,我可以单击以浏览内部 View 。

一切正常,直到我从 Play 商店更新我的应用程序(或手动使用签名的 APK)。

更新后,小部件仍然显示,但不会再更新。有些小部件在我单击它们时起作用,但 View 卡住并且在我重新创建小部件(获取新 ID 并绑定(bind)它)之前永远不会更新。

我尝试使用 强制更新

Intent intent = new Intent();
intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
intent.setComponent(appWidgetInfo.provider);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[]
{appWidgetId});
context.sendBroadcast(intent);

但这并没有帮助...

我想尝试点击时强制更新,但我找不到任何方法来获取小部件的 RemoteView(因为这不是我的小部件,我只是托管它)。

RemoteViews views = 
new RemoteViews(context.getPackageName(),R.layout.mywidget_layout);

Intent updateIntent = new Intent();
updateIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
updateIntent.putExtra(myWidgetProvider.WIDGET_IDS_KEY, ids);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
context, 0, updateIntent, PendingIntent.FLAG_UPDATE_CURRENT);

views.setOnClickPendingIntent(R.id.view_container, pendingIntent);

还实现了一个 AppWidgetProvider 来监听小部件的 ID 更改 (APPWIDGET_HOST_RESTORED),但它不会在我的应用程序更新时被调用。

我的下一步是在应用程序更新后重新创建所有小部件,但我真的不想这样做。

非常感谢任何帮助!

最佳答案

已解决。

我最不想做的事,可能是我应该尝试的第一件事。我继续重新创建小部件,我发现我不必完全重新创建它们,只需重新调用 bindAppWidgetIdIfAllowed()使用我已有的相同 Widget ID。

该方法将 return true如果一切正常,否则,可能不再安装小部件,或者您需要触发其配置屏幕。

关于android - 某些第 3 方小部件在应用程序升级后停止更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30302332/

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