Android アクティビティ間の受け渡しについて
現在、あるアクティビティで作成したSocketクラスを継承したオブジェクトを
別のアクティビティに受け渡そうとしています。
このとき受け取った先のアクティビティで
ソケットの接続状態が変わってしまい、困っています。
原因がわかるかたおりましたら教えてください。よろしくお願いします。
----
手順
1.Serializableを実装したSocket継承クラス(Socket2)を作成
(Socketオブジェクトをアクティビティに渡すために必要)
class Socket2 extends Socket implements Serializable
2.アクティビティAでホストXXXとの接続を確立
Socket2 socket = new Socket2();
Socket2.connect(XXX);
★ここでsocketの属性IsConnectedを見るとTrueになっています
3.インテント作成
Intent intent = new Intent(context, ActivityB.class);
4.パラメータ設定
intent.putExtra("SOCKET", socket);
5.アクティビティBを起動
StartActivity(intent);
;
6.アクティビティBのOnCreate()でパラメータを取得
Bundle extras = getIntent().getExtras();
if(extras != null){
socket = (Socket2)extras.getSerializable("SOCKET");
}
★ここでsocketの属性IsConnectedを見るとFalseになっています
変数socket自体はnullではないので何か値は渡ってきてはいるのですが
接続が切れているため、たとえば
socket.getInputStream()等をすると例外(IOException)が飛んできます。
またSocket2クラスに文字列の属性を追加した場合には、
その値は正しく渡せているようです。
Serializableを実装すればオブジェクトもアクティビティに渡せるということなので
その通りにやったつもりなのですが・・・。
なぜこうなってしまうのか原因がわかりません。
よろしくお願いします。