android 关于Notification传递数据问题
2012-02-17 17:35
260 查看
在开发Notificaiton状态栏提醒是,点击提醒,需要传递给activity一些数据,遇到了一些问题:
1,数据传不过去:当第一次数据没有被传过去时,以后每次都传不过去。
2,数据每次都传的一样:第一种情况也算这种情况。
在程序中需要用到PendingIntent 这个类,这个类是对Intent的一个再包装,为了方便其他的应用程序访问自己的应用程序。
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
构造函数的第二个参数代表是请求码,系统会根据这个参数返回pendingIntent的实例是否是同一个,如果设置同一个整数,那么返回的将会是同一个实例,最后的传递的参数也不会更新(我是这么理解的)。把第二个参数设置成你程序中的唯一的一个整数,就不会发生上述两个问题了。
还有一种解决办法,intent intent.setAction(""+System.currentTimeMillis());
把action设置成唯一的一个字符串,也可以区别PendingIntent.具体为什么是这样没看源码,还不明白,猜想的是这个样的。
等我看了源码之后再说说为什么这么去设置可以不会出现上述两种问题。
1,数据传不过去:当第一次数据没有被传过去时,以后每次都传不过去。
2,数据每次都传的一样:第一种情况也算这种情况。
在程序中需要用到PendingIntent 这个类,这个类是对Intent的一个再包装,为了方便其他的应用程序访问自己的应用程序。
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
构造函数的第二个参数代表是请求码,系统会根据这个参数返回pendingIntent的实例是否是同一个,如果设置同一个整数,那么返回的将会是同一个实例,最后的传递的参数也不会更新(我是这么理解的)。把第二个参数设置成你程序中的唯一的一个整数,就不会发生上述两个问题了。
还有一种解决办法,intent intent.setAction(""+System.currentTimeMillis());
把action设置成唯一的一个字符串,也可以区别PendingIntent.具体为什么是这样没看源码,还不明白,猜想的是这个样的。
等我看了源码之后再说说为什么这么去设置可以不会出现上述两种问题。
相关文章推荐
- 关于android与php传递数据,引号显示&quot的问题
- 关于android pendingIntent 传递Parcelable对象时数据丢失问题
- 关于Android如何给传递线程初始化数据
- 关于Android Activity之间传递数据的6种方式
- 关于android的tabhost中进行参数传递的问题
- Android与NativeC传递数据不正确问题
- 关于打开Android应用多次点击重复加载数据的问题。
- android 之 Intent 传递数据大小有限的问题
- android - Application对象的使用-数据传递以及内存泄漏问题
- 关于Android中传递数据的一些讨论--备用
- 关于android的tabhost中进行参数传递的问题
- 关于Android中传递数据的一些讨论
- android学习 关于用intent 传递数据
- 关于android不同activity之间数据传递的资料
- android 关于 webview 控制其它view的显示 以及更改view数据失败的问题总结
- 关于调用Android相机拍摄照片返回数据过小的问题
- Android成长之路-关于bundle实现两个activity之间的数据传递
- 关于多对话框数据的传递问题
- 关于Android的assets资源使用,以及网络间的数据传递JSON格式处理
- 关于Android Notification Bar icon setSmallIcon 显示为白板或白色的问题