【问题标题】:Are Socket/DataOutputStream/DataInputStream Parcelable?Socket/DataOutputStream/DataInputStream 可以打包吗?
【发布时间】:2018-12-06 20:52:01
【问题描述】:

我正在 android studio 中编写一个应用程序,我想使用 Intent.putExtra() 传递数据。为此,我需要对象来实现 Parcelable。问题是我的对象有像 Socket 或 DataOutputStream 这样的变量。为了实现 Parcelable,我还需要变量是 parcelable 的。

我的问题是:Socket 和 DataOutputStream/DataInputStream 是 parcelable 吗?如果不是,我如何在 android studio 的两个活动之间传递它们?

【问题讨论】:

    标签: android sockets android-activity parcelable


    【解决方案1】:

    不,你不能这样做。您作为“附加”放入Intent 的参数需要能够序列化为字节流并永久存储在应用程序之外。 Android 会这样做,以防它需要终止托管您的应用程序的操作系统进程。当 Android 创建一个新的 OS 进程时,它会重新实例化您的组件并传递 Intent 以及这些附加内容。

    因此,您不能像这样传递套接字或流。

    只需将对套接字或流的引用存储在 static 变量中,这可以由多个组件直接“共享”,例如“全局变量”。

    【讨论】:

      猜你喜欢
      • 2013-03-12
      • 2012-03-23
      • 2013-09-03
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      • 2012-02-13
      • 2018-03-09
      • 2011-03-14
      相关资源
      最近更新 更多