2012-03-15 215 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" >