PendingIntent传送数据丢失解决办法
2011-08-05 14:17
393 查看
AppWidget要向外部发送数据,可以把数据放在Intent里,再用intent对象生成一个PendingIntent对象,然后用RemoteViews的setOnClickPendingIntent绑定到相应控件上,具体代码如下:
网上的例子代码基本上是这样的,但是如果在启动的Activity接收Intent过来的数据,你会发现得到的Bundle其实是空的,也就是说,根本没有数据传过来。
这里我们需要改一下第8行代码,getActivity方法的最后一个参数是int flag,根据官方开发指南,这个值可以是FLAG_ONE_SHOT, FLAG_NO_CREATE, FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT
简单翻译一下:
int FLAG_CANCEL_CURRENT:如果该PendingIntent已经存在,则在生成新的之前取消当前的。
int FLAG_NO_CREATE:如果该PendingIntent不存在,直接返回null而不是创建一个PendingIntent.
int FLAG_ONE_SHOT:该PendingIntent只能用一次,在send()方法执行后,自动取消。
int FLAG_UPDATE_CURRENT:如果该PendingIntent已经存在,则用新传入的Intent更新当前的数据。
我们需要把最后一个参数改为PendingIntent.FLAG_UPDATE_CURRENT,这样在启动的Activity里就可以用接收Intent传送数据的方法正常接收。
转贴:http://www.pocketdigi.com/20110529/318.html
1 2 3 4 5 6 7 8 9 10 | RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.widget); ComponentName thisWidget = new ComponentName(context,Widget.class); AppWidgetManager manager = AppWidgetManager.getInstance(context); Intent intent=new Intent(context,Main.class); Bundle extras=new Bundle(); extras.putInt("appWidgetId", appWidgetIds[0]); intent.putExtras(extras); PendingIntent pendingIntent=PendingIntent.getActivity(context,0, intent,PendingIntent.0); updateViews.setOnClickPendingIntent(R.id.abs,pendingIntent); manager.updateAppWidget(thisWidget, updateViews); |
这里我们需要改一下第8行代码,getActivity方法的最后一个参数是int flag,根据官方开发指南,这个值可以是FLAG_ONE_SHOT, FLAG_NO_CREATE, FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT
简单翻译一下:
int FLAG_CANCEL_CURRENT:如果该PendingIntent已经存在,则在生成新的之前取消当前的。
int FLAG_NO_CREATE:如果该PendingIntent不存在,直接返回null而不是创建一个PendingIntent.
int FLAG_ONE_SHOT:该PendingIntent只能用一次,在send()方法执行后,自动取消。
int FLAG_UPDATE_CURRENT:如果该PendingIntent已经存在,则用新传入的Intent更新当前的数据。
我们需要把最后一个参数改为PendingIntent.FLAG_UPDATE_CURRENT,这样在启动的Activity里就可以用接收Intent传送数据的方法正常接收。
转贴:http://www.pocketdigi.com/20110529/318.html
相关文章推荐
- Android AppWidget 开发中PendingIntent传送数据丢失解决办法
- 闹钟开发过程中用PendingIntent传送数据丢失解决办法
- 用PendingIntent传送数据丢失解决办法
- 闹钟开发过程中用PendingIntent传送数据丢失解决办法
- Android AppWidget 开发中PendingIntent传送数据丢失解决办法
- 闹钟开发过程中用PendingIntent传送数据丢失解决办法
- 用PendingIntent传送数据丢失解决办法
- Android 多个 AppWidget PendingIntent 传送数据丢失解决办法
- 关于Android 6.0及以上版本用PendingIntent传送数据丢失问题
- svn管理数据丢失问题的解决办法
- Excel导入SQL Server数据丢失的解决办法
- 关于java中long类型的数据转换json传到前台时丢失精度问题的解决办法
- CSerialport用于多串口烧录MCU时丢失数据的分析与解决办法
- SQL2008导出数据到远程数据库导致主键丢失、标识规范为否的解决办法
- EF 未应用自动迁移,因为自动迁移会导致数据丢失的解决办法
- PendingIntent.getActivity()启动不起来Activity的解决办法
- 关于android pendingIntent 传递Parcelable对象时数据丢失问题
- history.back返回后数据丢失的解决办法
- php history.back返回后表单数据丢失的解决办法
- Android 通知PendingIntent意图打开Activity,数据无更新? 解决方法