AlarmManager意图数据在BroadcastReceiver上不存在

问题描述 投票:0回答:2

我正在制作警报。

我有一个数据类(可拆分)。

因此,当我创建警报时,我将对象传递给了意图。

但是当我在BroadcastReceiver中收到警报时,没有数据。

所以我测试了一些东西。

[当我放置“ String”而不是“ Parcelable”类时,它可以正常工作!

仅当我放置“ Parcleable”数据时,它不起作用!!

哦!我测试了Serializable,但是它也无法正常工作。

我的Parcelable类是使用“ Kotlin-@Parcelize”定义的。因此,我删除了注释并自行实现了Parcelable。但是结果一样。 (无效)

并且Parcelable类是“数据类”。所以我试图将其更改为“ class”,但结果相同...

AlarmManager仅支持带String的原始类型吗?

或者...这是Android错误吗?

android broadcastreceiver alarmmanager
2个回答
0
投票

哇...

这是预期的行为...

我找到一个链接...

https://issuetracker.google.com/issues/37112802

我仍然不知道为什么这是预期的行为...


0
投票

@Parcelize的注释将与您班上的parcelable member自动生成包裹功能。

不是不可包裹成员的其他成员仍需要自己处理。

Serialize相同。

我确信广播的意图可以传递序列化对象(例如ArrayList<String>,所以我想有些成员您尚未处理。

© www.soinside.com 2019 - 2024. All rights reserved.