Android 带bundle的应用程序小部件?

Android 带bundle的应用程序小部件?,android,android-widget,Android,Android Widget,嘿,伙计们,我有一个应用程序小部件,我想通过单击该小部件,将一些数据发送到连接到PendingEvent的intent。 这是我的密码 final int N = appWidgetIds.length; for (int i = 0; i < N; i++) { int appWidgetId = appWidgetIds[i]; Intent intent = new Intent(context, UpComingBDays.class); if(bdaysA

嘿,伙计们,我有一个应用程序小部件,我想通过单击该小部件,将一些数据发送到连接到PendingEvent的intent。 这是我的密码

final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
    int appWidgetId = appWidgetIds[i];
    Intent intent = new Intent(context, UpComingBDays.class);
    if(bdaysAmount != 0){
    Bundle bundle = new Bundle();
    bundle.putIntegerArrayList("WIDGETIDS", tempAllIDS);
    intent.putExtras(bundle);
    System.out.println("bund insertedddddddddddddd.....................");
    }
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
        intent, 0);
    RemoteViews remoteView = new RemoteViews(context.getPackageName(),
        R.layout.widget_layout);
    remoteView.setTextViewText(R.id.widget_text, finalText4TextView);
    remoteView.setOnClickPendingIntent(R.id.WidgetImageButton, pendingIntent);
    appWidgetManager.updateAppWidget(appWidgetId, remoteView);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
我意识到总是外滩插入。。。。。。打印在CatLog上,但intent的包为空

什么是不正确的?如何通过单击小部件发送数据。 请不要提供使用服务,因为我的代码没有任何内容。
非常感谢。

当您创建Pending帐篷时,请尝试使用FLAG\u UPDATE\u CURRENT。

很抱歉半年后回复帖子:对于那些在遇到此问题时会找到此帖子的人:我发现,FLAG\u UPDATE\u CURRENT还不够:

如果您在意图捆绑包中需要超过1个具有不同数据的小部件,则此标志将不起作用,因为意图将被重写

要解决此问题,您需要更新意图数据:


谢谢你的回答。我没有采纳你的建议,因为我改变了解决这个问题的方法。最初,我从widget类进行一些计算和服务调用,但我改变了这一点,将所有逻辑放在附加的intent中。您是否需要为AndroidManifest中的BroadcastReceiver在intent过滤器中添加元素?
// When intents are compared, the extras are ignored, so we need to embed the extras
// into the data so that the extras will not be ignored.
intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));