gpt4 book ai didi

android - AppWidgetProvider,onUpdate 在启动时被调用多次

转载 作者:太空狗 更新时间:2023-10-29 14:29:09 27 4
gpt4 key购买 nike

我有一个关于 AppWidgetProvider 的问题。当手机启动时,AppWidgetProvideronUpdate() 方法被连续调用四次,所有调用都包含相同的 appWidgetId。我不明白为什么会这样。有人知道吗?

我有两种类型的父类(super class)MainMainScroll,以及四个类(小部件)扩展父类(super class)

示例小部件

public class WidgetMedium extends Main {

public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
}

}

list

        <receiver android:name=".activity.Main">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
</receiver>

<receiver android:name=".activity.MainScroll">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
</receiver>

<receiver android:name=".activity.WidgetMedium"
android:label="Swedroid Widget 4x3"
android:icon="@drawable/widget_application">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_provider_medium" />
</receiver>

<receiver android:name=".activity.WidgetScrollMedium"
android:label="Swedroid Widget 4x3 Scroll"
android:icon="@drawable/widget_application">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_scroll_provider_medium" />
</receiver>

<receiver android:name=".activity.WidgetLarge"
android:label="Swedroid Widget 4x4"
android:icon="@drawable/widget_application">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_provider" />
</receiver>

<receiver android:name="com.swedroid.widget.activity.WidgetScrollLarge"
android:label="Swedroid Widget 4x4 Scroll"
android:icon="@drawable/widget_application">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_scroll_provider_large" />
</receiver>

最佳答案

如果 MainMainScroll 类只是父类(super class),我认为它们不应该是 AppWidgetProviders 而应该是 abstract 类,因此, list 中不需要它们的 receiver 定义。

此外,我认为其他四个 reciever 定义不需要下面的 intent-filter

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

关于android - AppWidgetProvider,onUpdate 在启动时被调用多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8544964/

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