gpt4 book ai didi

android - WidgetProvider 在没有显示小部件时接收广播

转载 作者:行者123 更新时间:2023-11-30 04:44:07 25 4
gpt4 key购买 nike

对于 Android Widget API,有些东西我真的不明白。

我编写了一个带有配置 Activity 的小部件,每次我使用 adb 安装应用程序时,即使未显示该小部件,也会调用 WidgetProvider.onUpdate()。有时还有多个 appWidgetId,以及启动配置 Activity 时。

onUpdate 方法中,我检查了 appWidgetManager.getAppWidgetIds() 的值,它返回 0 个项目。

public class FlickrWidget
extends AppWidgetProvider
{

/**
* @see android.appwidget.AppWidgetProvider#onUpdate(android.content.Context, android.appwidget.AppWidgetManager, int[])
*/
@Override
public void onUpdate( Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds )
{
Log.d( "FlickrWidget: Start onUpdate with " + appWidgetIds.length + " widgets" );

int[] appWidgetIds2 = appWidgetManager.getAppWidgetIds( new ComponentName( context, FlickrWidget.class ) );
Log.d( "FlickrWidget: installed : " + appWidgetIds2.length + " widgets" ); //display 0 items
for ( int i = 0; i < appWidgetIds2.length; i++ )
{
Log.d( "FlickrWidget : installed appWidgetId = " + appWidgetIds2[i] );
}

for ( int i = 0; i < appWidgetIds.length; i++ )
{
Log.d( "FlickrWidget : appWidgetId = " + appWidgetIds[i] ); // can have multiple items
}
}
}

我不明白,因为我虽然:

  1. AppWidgetProvider 仅在显示一个或多个小部件时才接收广播。
  2. 具有配置 Activity 的小部件不会在启动时随广播更新。
  3. onUpdate 中调用 appWidgetManager.getAppWidgetIds() 应该返回与参数中的 appWidgetIds 相同的 int 数组。

当我实验时,所有这 3 个点都是错误的...

有人可以帮助我吗?

提前致谢

最佳答案

最后我在 Android Google Groups 上重复了这个问题,一个好人回答我说 developer.android.com 上的 Widget api 文档已经过时了...

https://groups.google.com/d/topic/android-developers/HfD-ojjsuso/discussion

关于android - WidgetProvider 在没有显示小部件时接收广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5395635/

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