【问题标题】:Serializable in Intent/Bundle not workingIntent/Bundle 中的可序列化不起作用
【发布时间】:2016-01-13 08:37:46
【问题描述】:

我将模型移至外部依赖项,以便可以在服务器和其他部件上重用它。但是现在我遇到的问题是,当我序列化到 Intents Extra 然后在 BroadcastReceiver 中反序列化时,反序列化的对象不为空,但它的属性具有默认值,如 null(对于字符串)或 0(对于 int 或 long)。

这是模型类的摘录:

public class Measurement extends Event implements Serializable {
  private static final long serialVersionUID = 8246754793603601250L;
  /* Some other Stuff */
}

这来自序列化:

List<Measurement> measurements = new ArrayList<Measurement>();
/* measurements get filled */
extras.putSerializable(Intents.EXTRA_MEASUREMENTS, (Serializable) measurements);

这来自反序列化:

List<Measurement> measurements = (List<Measurement>) intent.getSerializableExtra(Intents.EXTRA_MEASUREMENTS);

【问题讨论】:

  • Measurement 是否实现了Serializable
  • 当然;见上面的代码片段;)
  • Event 是什么?是Serializable 吗?
  • @GeneralOfTheFelixLegions 请提供measurements 声明
  • 一个类,其中包含一些常见的东西,如时间戳、ID 等。

标签: android android-intent serialization


【解决方案1】:

Measurement 的所有成员及其成员(递归)将是 Serializable

【讨论】:

  • 是的,我自己也是偶然发现的。还是谢谢你。
【解决方案2】:

找到了。问题是底层的类事件没有实现可序列化。看起来这在重构和移动到外部依赖项期间丢失了。

谢谢大家。

【讨论】:

    猜你喜欢
    • 2017-03-21
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 2014-08-01
    • 2012-07-11
    • 1970-01-01
    相关资源
    最近更新 更多