2012-03-15 176 views
0

我有会话活动A使用该流服务器侧:传递活动之间没有序列化对象

socket = new Socket("10.0.2.2", 7777); 
outStream = new ObjectOutputStream(socket.getOutputStream()); 
inStream = new ObjectInputStream(socket.getInputStream()); 

我开始活动B,其中我生成的GeoPoint(没有序列号)。
现在我想发送GeoPoint到服务器。 我该怎么办呢?

我试过了:
1.使用Intent将GeoPoint返回到Activity A,但它只在Activity B完成时工作,而我不想关闭Activiy B。
2.从活动A发送outStream,inStream到B,但它们没有被序列化。

任何想法?

+0

使用应用程序类中传递数据。你可以在那里继续引用你的套接字连接。 – goodm 2012-03-15 09:28:04

回答

2

在这种情况下,您可能希望使用全局变量,方法是重写Application本身。

例如:

public class MyOverridenApp extends Application { 

    private static ObjectOutputStream outStream = null; 
    private static ObjectInputStream inStream = null; 

    public static void setOutStream(ObjectOutputStream outStream) { 
     MyOverridenApp.outStream = outStream; 
    } 

    public static ObjectOutputStream getOutStream() { 
     return MyOverridenApp.outStream; 
    } 
} 

和使用适当的呼叫在活动中设置/获取outstream。

只要记住设置此作为体现你的应用程序:

<application androidName=".MyOverridenApp" android:icon="@drawable/icon" android:label="@string/app_name" > 
相关问题