在开发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.具体为什么是这样没看源码,还不明白,猜想的是这个样的。
等我看了源码之后再说说为什么这么去设置可以不会出现上述两种问题。