小编BIN*_*BIN的帖子

Pendingintent getbroadcast丢失了可分配的数据

这是问题所在.我的程序在Android 6.0中运行完美.将设备更新到android 7.0后.Pendingintent无法将可分配的数据传递给boradcast reveiver.这是代码.

发出警报

public static void setAlarm(@NonNull Context context, @NonNull Todo todo) {
    AlarmManager alarmManager = (AlarmManager) context.getSystemService(context.ALARM_SERVICE);
    Intent intent = new Intent(context, AlarmReceiver.class);
    intent.putExtra("KEY_TODO", todo);
    PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    alarmManager.set(AlarmManager.RTC_WAKEUP, todo.remindDate.getTime(), alarmIntent);
}
Run Code Online (Sandbox Code Playgroud)

Todo是一个Parcelable类,而todo是我在通知中需要的实例.

在Broadcastreceiver中,我无法获取可用的数据.

public void onReceive(Context context, Intent intent) {

    Todo todo = intent.getParcelableExtra("KEY_TODO");

}
Run Code Online (Sandbox Code Playgroud)

这是我在这里调试输入图像描述时的意图 结果

我不知道为什么意图只包含一个我从未放入的Integer.Carcelable todo在哪里.此代码在Android 6.0中没有问题,但无法在7.0中运行

android broadcast parcelable android-intent android-pendingintent

4
推荐指数
2
解决办法
1736
查看次数