我正在使用从活动A到活动B的Intent传递一个Serializable对象,但是当我在将对象放入A中的intent并在B中检索它之后打印object.toString()方法时,我看到了它们实际上是不同的实例。
这是问题所在。我在不同的类和不同的线程中初始化了该对象的字段,当我将对象放入Activity A中的intent时,这些字段还没有准备好,但是当我检索它们时它们就准备好了。但是,当我尝试在Activity B中检索这些字段时,我发现它们是空的,因为检索到的对象是一个新实例。
我该如何解决这个问题?我不知道如何让主线程等到对象初始化任务结束(已经尝试过thread.join())。我基本上只需要将两个ArrayLists从一个活动发送到另一个活动,除非我发送它们(即将它们置于意图中)它们是空的,但是当它们被检索时它们已被填充。
答案 0 :(得分:0)
序列化对象时,它会被翻译成一个表格,以后可用于创建原始对象的语义相同的克隆。这当然是原始对象的不同实例。
我可以想到两种情况: