无法在Android N中通过意图传递Object

时间:2017-05-11 14:34:41

标签: android android-intent broadcastreceiver android-7.0-nougat

我在通过Android N中的意图传递Object时遇到问题。波纹管代码在Android前N版本中完美运行,但在Android N中,我尝试通过intent传递它的Object为null。有人可以帮我解决这个问题吗?

我试图使用bundle传递它,也作为字节数组传递,但问题是相同的。

这是我的代码:

    Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
    intent.putExtra(SCENARIO, Constants.SCENARIO_REMINDER_RECEIVE);
    intent.putExtra(TASK_NAME, task.getTask());
    intent.putExtra(TASK_ID, task.getId());
    intent.putExtra(TASK_MESSAGE_KEY, task.getMessageKey());
    intent.putExtra(TASK_STATUS, task.getStatus());
    intent.putExtra("Task", task);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
onReceive中的BroadcastReceiver中的

我为任务得到null:

     @Override
     public void onReceive(Context context, Intent intent) {

     task = (Task) intent.getSerializableExtra("Task");
     requestCode = intent.getLongExtra(REQUEST_CODE, requestCode);
     Timber.d("task in onReceive: " + task);

0 个答案:

没有答案