当前位置: 代码迷 >> Android >> activity跳转时会黑屏,模拟器能显示程序无响应
  详细解决方案

activity跳转时会黑屏,模拟器能显示程序无响应

热度:40   发布时间:2016-05-01 10:18:02.0
activity跳转时会黑屏,模拟器会显示程序无响应
我的问题是这样的:我要开发一个即时通讯的软件,大概像qq的聊天功能,大体思路是客户Client A将信息包装起来发给服务器,然后服务器根据A发过来的包解析出要传递给的目标者Client B,然后服务器继续将包发送给Client B,服务器接收功能我已

经写好了,只是在B接收服务器时出现了一个小问题,我想让B使用ObjectInputStream不断地接收服务器发过来的信息,然后显示在B的一个对话Activity中的EditText中,但是我

在这个对话Activity的onCreate方法中new一个ObjectInputStream,并让它执行readObject的话,模拟器在跳转到这个Activity时会黑屏,并显示失去响应。我想可能在onCreate

方法中不能让ObjectInputStream执行readObject,于是把new ObjectInputStream和readObject放到按钮的点击事件处理中去,可这样的话就只能点击一次接收一次,不点击按钮

就无法得到服务器发来的信息,各位大侠该怎么解决?
B的对话Activity代码如下
package cn.jiaoyuan.hmx;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.StreamCorruptedException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class haoyouliaotian extends Activity {
Button bt_fasong;
EditText et_xiaoxi;
String daifadong;
ObjectOutputStream objout;
ObjectInputStream objin;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.zhidinghaoyouliaotian);
bt_fasong = (Button) findViewById(R.id.btn_fasong);
et_xiaoxi = (EditText) findViewById(R.id.et_daifadong);

bt_fasong.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
daifadong = et_xiaoxi.getText().toString();
YQMessage message = new YQMessage();
message.setContent(daifadong);
message.setType(YQMessageType.COM_MES);
message.setSender(MainActivity.myaccount);
message.setReceiver(haoyouliebiao.haoyouaccount);
try {
objout=new ObjectOutputStream(YQClient.s.getOutputStream());
objout.writeObject(message);
objin=new ObjectInputStream(YQClient.s.getInputStream());
YQMessage shouxino = (YQMessage) objin.readObject();
Toast.makeText(getApplicationContext(),
shouxino.getContent(), Toast.LENGTH_LONG).show();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});

}

}




  相关解决方案