Android 如何在从appwidgetprovider的挂起意图调用的活动中检测appWidgetId

Android 如何在从appwidgetprovider的挂起意图调用的活动中检测appWidgetId,android,android-widget,android-pendingintent,Android,Android Widget,Android Pendingintent,我有如下appwidgetprovider类,它调用要打开的活动 for (int widgetId : allWidgetIds) { remoteViewParent = new RemoteViews(context.getPackageName(),R.layout.widget_initial_layout); try{ Intent clickIntent = new Intent(context,Activity.clas

我有如下appwidgetprovider类,它调用要打开的活动

for (int widgetId : allWidgetIds) {

        remoteViewParent = new RemoteViews(context.getPackageName(),R.layout.widget_initial_layout);

        try{
            Intent clickIntent = new Intent(context,Activity.class);//same class name is passed to give the call to itself
            clickIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                            //PASSING ID HERE
            clickIntent.putExtra("checkintent", ""+widgetId);


            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, clickIntent,PendingIntent.FLAG_UPDATE_CURRENT);
            remoteViewParent.setOnClickPendingIntent(R.id.widget_img_logo, pendingIntent);

            appWidgetManager.updateAppWidget(widgetId, remoteViewParent);

        }catch (Exception e) {
        }

    }
我希望活动在我的活动类中接收widgetId,因此我通过
putExtra()
在此之后,我一个接一个地添加
3
小部件,当我单击主屏幕上的任何小部件时,我只获得最后添加的小部件的ID(通过我的意图)

有没有一种方法可以区分在某个特定小部件上添加的点击,以及任何解决方法

很久以来就被卷入这件事了

我想要android
2.2
及以上版本的。
欢迎任何建议

在比较PedingContent时,不考虑额外内容,因此即使您更改额外内容,您也会得到相同的意图
FLAG_UPDATE_CURRENT
意味着当前pendingent得到更新,因此您只能获得最后一个ID。如果你想可靠地传递ID,你必须把它放入Intent的数据中,那么你将能够为不同的ID获得不同的PendingIntent。大概是这样的:

Uri data = Uri.withAppendedPath (Uri.parse("mywidget://mywidget/widgetId/#"),
                String.valueOf(widgetId));
intent.setData(data);
然后从意图的数据中提取ID以区分小部件

“mywidget”
在这里代表什么,它是静态的吗,我正在尝试使用这个
Uri data=Uri.withAppendedPath(Uri.parse(intent.toUri(intent.Uri\u intent\u SCHEME)),String.valueOf(widgetId))没有运气