我在一个活动中执行以下操作:

    intent.putExtra("searchRegion", searchRegion);
    Log.d("AAA", "Puttin searchRegion: " + searchRegion.toString());


在接收活动上:

    SearchRegion searchRegion = (SearchRegion) getIntent().getSerializableExtra("searchRegion");
    Log.d("AAA", "rcv searchreg " + searchRegion.toString());


结果是:

Puttin searchRegion: mypackage.SearchRegion@3b41ba0
rcv searchreg mypackage.SearchRegion@22655d14


当我想知道序列化之后我的SearchRegion对象的Observer哪里去了时,我意识到了这一点。

我有两个问题:


通过Intent序列化对象时究竟发生了什么?接收端的对象与发送端的对象不同,对吗?
我可以在使用Observer进行序列化的整个过程中保留对象的Intent吗?

最佳答案

通过Intent序列化对象时究竟发生了什么?


这些对象保存的数据以及有关对象类别的元数据被写入流中,然后从该流中重构。


  接收端的对象与发送端的对象不同,对吗?


正确。


  我可以使用Intent在整个序列化过程中保留对象的观察者吗?


没有。

08-18 18:42