在notifyAppWidgetViewDataChanged之后没有调用RemoteViewService中的onDataSetChanged()

2024-01-07

在我的 AppWidgetProvider 类中,我有以下代码onUpdate() method:

    // Update each of the widgets with the remote adapter
    for (int appWidgetId : appWidgetIds) {
        HyperLog.i(TAG, "Updating Widget id " + appWidgetId);

        ...

        HyperLog.i(TAG, "Starting updateAppWidget with id " + appWidgetId);
        appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, R.id.lvActiveReminders);
        appWidgetManager.updateAppWidget(appWidgetId, rv);
    }
    super.onUpdate(context, appWidgetManager, appWidgetIds);

但电话notifyAppWidgetViewDataChanged()不调用RemoteViewService类方法onDataSetChanged():

        HyperLog.i(TAG, "onDataSetChanged is called.");
        getData();

有谁知道为什么不调用它?

The onUpdate()AppWidgetProvider 内部始终被调用,并且 updateAppWidget 刷新小部件,但使用旧数据,因为onDataSetChaned()之前没有被调用。
截至文档,这是我们刷新小部件数据的方式(https://developer.android.com/guide/topics/appwidgets/collections#keep-data-fresh https://developer.android.com/guide/topics/appwidgets/collections#keep-data-fresh).

我正在 Android 12 设备上对此进行测试。


经过两个月对不同型号、不同 Android 版本的智能手机进行大量测试后,我得出了结论问题出在制造商的操作系统更新中.

Because:

1).我的智能手机 OnePlus 8T(搭载 Android 12)没有出现任何问题,就像您的一样,直到 2022 年 5 月的最后一次操作系统更新为止。安装最后一次更新后,我遇到了与您描述的相同的问题:我的小部件已更新,但小部件的列表视图没有更新不经常更新 - onDataSetChanged 不启动。

2)。我朋友的同一款智能手机 OnePlus 8T,搭载 Android 12,但没有 2022 年 5 月的最后更新, onDataSetChanged 没有任何问题 - listview 已更新,一切工作 100% 稳定。

3)。在搭载 Android 12 的三星上,没有任何问题:onDataSetChanged 对 NotifyAppWidgetViewDataChanged 做出反应。

4).在搭载 Android 10 的智能手机上,11 onDataSetChanged 运行稳定。

此外,我还使用其他应用程序开发人员的列表视图测试了其他小部件:在上次操作系统更新之前,他们在我的 OnePlus 的 Android 12 上更新了绝对稳定的列表视图。更新后,模拟小部件遇到了同样的问题 - onDataSetChanged 在 notifyAppWidgetViewDataChanged 之后不会启动...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在notifyAppWidgetViewDataChanged之后没有调用RemoteViewService中的onDataSetChanged() 的相关文章

随机推荐