疑问如题:
Intent intent = new Intent(context, MyWidgetProvider.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent doubleClick = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
-------------------------------->
int appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, 0);
这是我遇到的问题,虽然通过修改getBroadcast方法的最后一个参数是int flag为PendingIntent.FLAG_UPDATE_CURRENT避免了在传送过程中出现的数据为空,但是得到的数据却总是Home screen中的最后一个该包的widgetID。此疑问未解。
问题解决,代码如下:
Intent intent = new Intent(context, MyWidgetProvider.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
Log.i(TAG, "appWidgetId "+appWidgetId);
PendingIntent doubleClick = PendingIntent.getBroadcast(context, appWidgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
remoteViews.setOnClickPendingIntent(R.id.widget, doubleClick);
appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
也就是将getBroadcast的第二个参数修改为我们要传递的appWidgetId即可。
分享到:
相关推荐
Android中pendingIntent的深入理解
NULL 博文链接:https://sunzone.iteye.com/blog/1998091
Android中PendingIntent的简要介绍.pdf 学习资料 复习资料 教学资源
android的服务以及通知的小例子 个人存档 代码笔记见http://blog.sina.com.cn/s/blog_70356c200100y9pf.html
Android中pendingIntent的深入分析 pendingIntent字面意义:等待的,未决定的Intent。 要得到一个pendingIntent对象,使用方法类的静态方法 getActivity(Context, int, Intent, int),getBroadcast(Context, int, ...
要用 android.app.PendingIntent.getBroadcast(Context context, int requestCode, Intent intent)来实现控制多个闹钟,关键点在于其中的一个参数requestCode. 举例说明如下: public void setClock(){ if(lva....
android 自制发送短信程序 SmsManager与PendingIntent对象
/*声明变量一个Button与两个EditText*/ private Button mButton1; private EditText mEditText1; private EditText mEditText2; /** Called when the activity is first created. */ @Override public ...
博客《详解PendingIntent》所涉及的源码,这是博客中所说的有问题的PendingIntent对应原源代码
这样我们就可以画出如下示意图:PendingIntent 只能通过下列的静态方法获取//获取Broadcast关联的PendingIntent PendingI
App Widget 的概念 一个简单的App Widget例子 PendingIntent的使用 RemoteViews的使用 接收来自App Widget的广播 更新App Widget的控件状态
PendingIntent 分别实现了Notification和sms短信发送的两个示例
根据本讲学习内容,学会运用AlarmManager和PendingIntent实现定时提醒功能。 (1) 提交的作业包中含有应用程序运行效果截图。
自制发送短信程序--SmsManager与PendingIntent类的使用
Notification的用法和PendingIntent的使用
博客《详解PendingIntent》有问题的源码第二部分
简单的总结了Intent和PendtingIntent的区别,经常与alermanger 和notificationmanager一起使用。