我可以在onUpdate()
的方法中获取当前的 widgetIdAppWidgetProvider
吗?
我在 Intent 领域发现了很多关于发送的帖子appWidgetId
,但我不明白在发送之前我必须在哪里得到它。
我没有找到在没有配置活动的情况下仅获取当前小部件 ID 的方法。
我可以在onUpdate()
的方法中获取当前的 widgetIdAppWidgetProvider
吗?
我在 Intent 领域发现了很多关于发送的帖子appWidgetId
,但我不明白在发送之前我必须在哪里得到它。
我没有找到在没有配置活动的情况下仅获取当前小部件 ID 的方法。
试试 onUpdate
int a = appWidgetIds.length;
如果返回 1,则:
int yourAppWidgetId = appWidgetIds[0];
应该返回您的 appWidgetId。
没有看到任何代码很难给你正确的答案,但我会给你一个例子。如果您为小部件创建了 RemoteView,则必须为每个 RemoteView 创建一个意图。为此,您可以设置一个 ID,例如:
RemoteViews remoteViews = new RemoteViews(getApplicationContext()
.getPackageName(),
layout.your_widget_layout);
Intent intent1 = new Intent(getApplicationContext(),
YourAppWidgetProvider.class);
intent1.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent1.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS,widgetIds);
intent1.putExtra("ID", "one");
然后创建一个 PendingIntent,您可以将其设置为 remoteViews:
PendingIntent pendingIntent = PendingIntent.getBroadcast(
getApplicationContext(), 1, intent1,
PendingIntent.FLAG_ONE_SHOT);
remoteViews.setOnClickPendingIntent(R.id.your_widget_button_id_in_xml,
pendingIntent);
如果用户按下小部件,您可以在 onReceive() 中获取 id
String a = intent.getStringExtra("ID");
但这只是一个不完整的例子,还有很多事情要做。如果您阅读本教程,我认为这是一个好方法:
http://www.android10.org/index.php/articlesgeneralprogramming/315-app-widgets-tutorial
updateService 有一个很好的例子。