如何将包含流的复杂对象传递给活动

Posted

技术标签:

【中文标题】如何将包含流的复杂对象传递给活动【英文标题】:How pass complex object containing stream to activity 【发布时间】:2013-12-15 16:12:16 【问题描述】:

我目前正在尝试将一个对象从主要活动传递给另一个。我的对象是病人

public Patient(int id, String name,JsonReader jsr, JsonWriter jsw, String firstName, String birth,
        String vcf, String[] clinicalFactors) 

我需要另一边的 JsonReader 和 writer。我看到我必须使患者可包裹,但据我了解,writetoparcel 方法仅支持某些特定类型。我尝试使用 writeValue 方法,但在 readFromParcel 中我不知道如何读取流。

希望它足够清楚。提前谢谢你

【问题讨论】:

在 POJO 中保存对 JsonReader 和 JsonWriter 的引用是糟糕设计的明显迹象。 【参考方案1】:

如果您确实需要在应用的 Activity 之间共享对象,您可以通过继承 Application.有一个 Application 实例,它在任何活动开始之前被初始化,并在您的应用程序中的所有活动的生命周期内一直存在。

如果您能找到其他传递信息的方法,例如传递文件名或数据库主键,那就更好了。

请注意,应用程序仅适用于您的活动。因此,如果您尝试将信息传递给另一个应用程序,这将无济于事。

【讨论】:

以上是关于如何将包含流的复杂对象传递给活动的主要内容,如果未能解决你的问题,请参考以下文章

如何从 jQuery ajax 调用将复杂对象传递给 ASP.NET WebApi GET?

将上下文传递给许多方法是否正常?

如何将 Fire store ref 对象传递给另一个活动(Kotlin)?

将 C# 对象(包含静态对象成员)作为参数传递给 C++/CLI 程序

角度 4 将包含其他对象的对象传递给 FormBuilder.group 函数会导致奇怪的表单行为

如何在活动和片段之间传递对象