gpt4 book ai didi

android - AppWidgetProvider:onAppWidgetOptionsChanged 未在小部件放置时调用

转载 作者:太空宇宙 更新时间:2023-11-03 11:37:27 26 4
gpt4 key购买 nike

根据AppWidgetProvider中关于onAppWidgetOptionsChanged的文档:“当第一次放置小部件时以及调整小部件大小时都会调用它。”

但是,当我将我的小部件放在 Android 4.2 和 4.3 中的股票启动器上时,不会立即调用此方法(仅在我调整小部件大小时)。我在自己的应用程序以及 CommonsWare 的 https://github.com/commonsguy/cw-omnibus/tree/master/AppWidget/Resize 上都试过了

有什么我想念的吗?

编辑:我发现唯一可以按照 Google 文档所述使此方法正常工作的启动器是 Action Launcher Pro;干得好,谢谢 Chris Lacy!为什么股票发射器不起作用?还有其他人有这个问题吗?

最佳答案

感谢您提请注意此问题。我将更新 Android 文档以反射(reflect)这一点。

但是,我们不推荐在 onUpdate() 中强制调用 onAppWidgetOptionsChanged(),而是推荐如下方法:

public class AppWidget extends AppWidgetProvider {

....

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {

super.onUpdate(context, appWidgetManager, appWidgetIds);

final int N = appWidgetIds.length;
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
Bundle options = appWidgetManager.getAppWidgetOptions(appWidgetId);
updateWidget(context, appWidgetManager, appWidgetId, options);
}

}


public void onAppWidgetOptionsChanged (Context context, AppWidgetManager
appWidgetManager, int appWidgetId, Bundle newOptions) {

updateWidget(context, appWidgetManager, appWidgetId, newOptions);
}

private void updateWidget(Context context, AppWidgetManager appWidgetManager,

int appWidgetId, Bundle options) {

// Do whatever you need to do to the widget. Include any customization based
// on the size, included in the options. Be sure to have a graceful fallback if
// no valid size data is included in the bundle.


}

...
}

关于android - AppWidgetProvider:onAppWidgetOptionsChanged 未在小部件放置时调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18526770/

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