android 关于在PenddingIntent 中传输Parcelable对象的问题
现在要做一个需求,需要在PenddingIntent中传输一个Parcelable的对象,代码如下:Intentintent=newIntent("com.android...
现在要做一个需求,需要在PenddingIntent 中传输一个Parcelable的对象,代码如下:
Intent intent = new Intent("com.android.translate");
intent.putExtra("message", message); // 此处message是实现了Parcelable接口
PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
然后为何在对应的BroadcastReceiver里面,intent.getParcelable("message") 的返回值是null 呢?百思不得其解 展开
Intent intent = new Intent("com.android.translate");
intent.putExtra("message", message); // 此处message是实现了Parcelable接口
PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
然后为何在对应的BroadcastReceiver里面,intent.getParcelable("message") 的返回值是null 呢?百思不得其解 展开
1个回答
展开全部
flags有四个取值:
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传送数据的方法正常接收。
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传送数据的方法正常接收。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询