代码之家  ›  专栏  ›  技术社区  ›  Netanel

socket/dataoutputstream/datainputstream parcelable?

  •  1
  • Netanel  · 技术社区  · 7 年前

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

    我的问题是:socket和dataoutputstream/datainputstream是parcelable吗?如果没有,我如何在Android Studio的两个活动之间传递它们?

    1 回复  |  直到 7 年前
        1
  •  1
  •   David Wasser    7 年前

    不,你不能这样做。你提出的论点 Intent 因为“Extras”需要能够序列化为字节流,并持久地存储在应用程序外部。Android会这样做,以防它需要终止托管应用程序的操作系统进程。当android创建一个新的操作系统进程时,它将重新验证您的组件并传入 意图 带着这些额外的东西。

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

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