为了在我的android应用程序中的两个活动之间传递一些对象,我让它们实现parcelable并将它们发送到下一个活动。不幸的是,这有时会导致“FAILED BINDER TRANSACTION”错误,这是由于对象太大造成的。
我发现只有一个解决方案可以解决这个问题:将对象拆分为多个较小的对象。 由于这似乎更像是一个讨厌的黑客而不是我的解决方案,我寻找另一种方法。
另一个经常提到的避免错误的方法是将Object放入singelton提供的静态映射中并发送对象的密钥。我也不喜欢这种方法。我必须跟踪地图大小,以便不使用大量内存,同时保留此地图中所有需要的对象,因为我无法将它们放在onSaveInstanceState()的包中。这似乎需要大量的额外开发。
我自己的解决方案:
我发现对象的json字符串表示比实际对象小得多(因此可以很容易地通过bundle传递)。那么,singelton解决方案是否有任何好处,而不是简单地发送对象的字符串表示并在我的第二个活动中重新组合它?
问候 danijoo