https://developer.android.com/guide/topics/appwidgets/index.html
它解释了如何在Manifest中声明它:
<receiver android:name="ExampleAppWidgetProvider" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/example_appwidget_info" /> </receiver>
后来它说如何添加类:
public class ExampleAppWidgetProvider扩展AppWidgetProvider {
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { final int N = appWidgetIds.length; // Perform this loop procedure for each App Widget that belongs to this provider for (int i=0; i<N; i++) { int appWidgetId = appWidgetIds[i]; // Create an Intent to launch ExampleActivity Intent intent = new Intent(context, ExampleActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); // Get the layout for the App Widget and attach an on-click listener // to the button RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout); views.setOnClickPendingIntent(R.id.button, pendingIntent); // Tell the AppWidgetManager to perform an update on the current app widget appWidgetManager.updateAppWidget(appWidgetId, views); } } }
它说我需要将该类声明为广播接收器。
所以我的问题是:我的应用程序中有接收器,但是如何添加该类并将其声明为 广播 接收器? 如果有人用类发布了接收器的示例代码会很有帮助,所以我知道如何将它放在一起。 对不起,如果这是一个愚蠢的问题,我对这一切都不熟悉。
答案 0 :(得分:1)
AppWidgetProvider 类扩展BroadcastReceiver 以方便 用于处理App Widget广播的类。 AppWidgetProvider 仅接收 与相关的广播 窗口小部件,例如更新,删除,启用和更新应用程序窗口小部件时 禁用。
换句话说:由于您的ExampleAppWidgetProvider
继承自AppWidgetProvider
类,因此它也是BroadcastReceiver
,因为AppWidgetProvider扩展了android.content.BroadcastReceiver
。因此,没有必要将您的类明确声明为广播接收器。此外,这是文档所说的(再一次):
您必须将AppWidgetProvider类实现声明为 使用AndroidManifest中接收器元素的广播接收器
正如我所看到的,你已经做到了。 ;)