Socket/DataOutputStream/DataInputStream 可以打包吗?
Are Socket/DataOutputStream/DataInputStream Parcelable?
我正在 android studio 中编写应用程序,我想使用 Intent.putExtra() 传递数据。为此,我需要对象来实现 Parcelable。问题是我的对象有像 Socket 或 DataOutputStream 这样的变量。为了实现 Parcelable,我还需要变量是可打包的。
我的问题是:Socket 和 DataOutputStream/DataInputStream 可以打包吗?如果不是,我如何在 android 工作室的两个活动之间传递它们?
不,你不能这样做。您放入 Intent
作为 "extras" 的参数需要能够序列化为字节流并永久存储在您的应用程序之外。 Android 执行此操作以防它需要终止托管您的应用程序的 OS 进程。当 Android 创建一个新的 OS 进程时,它将重新实例化您的组件并传入 Intent
和这些额外内容。
因此你不能像这样传递套接字或流。
只需将对套接字或流的引用存储在 static
变量中,这可以由多个组件直接 "shared",例如 "global variables"。
我正在 android studio 中编写应用程序,我想使用 Intent.putExtra() 传递数据。为此,我需要对象来实现 Parcelable。问题是我的对象有像 Socket 或 DataOutputStream 这样的变量。为了实现 Parcelable,我还需要变量是可打包的。
我的问题是:Socket 和 DataOutputStream/DataInputStream 可以打包吗?如果不是,我如何在 android 工作室的两个活动之间传递它们?
不,你不能这样做。您放入 Intent
作为 "extras" 的参数需要能够序列化为字节流并永久存储在您的应用程序之外。 Android 执行此操作以防它需要终止托管您的应用程序的 OS 进程。当 Android 创建一个新的 OS 进程时,它将重新实例化您的组件并传入 Intent
和这些额外内容。
因此你不能像这样传递套接字或流。
只需将对套接字或流的引用存储在 static
变量中,这可以由多个组件直接 "shared",例如 "global variables"。