解决方案 »

  1.   

    你把网络连接处理放到了主线程吧?用asynctask处理任务
    如果只是写demo看看效果,临时new thread起个线程处理不妨~
      

  2.   

    private void listLoadMoreData() {
    if (!checkNetwork()) {
    return;
    }
    new Thread(new Runnable() {
    @Override
    public void run() {
    Message msg = new Message();
    List<TongEntity> list = tmanager.getTongByParams(mGuid, mDate,pageSize, pageIndex);
    if (list.size() > 0) {
    msg.obj=list;
    msg.what = CHANGE_LIST_DATA;
    list=null;  
    } else {
    msg.what = LOADING_ERROR;
    }
    mHandler.sendMessage(msg);
    }
    }).start();
    }
    写在Thread里了. .
    一般操作没问题,就是长时间的等待后在操作就会出问题 ...
      

  3.   

     java.net.SocketTimeoutException
    是上传大文件导致的耗时过长,还是根本没连上?
      

  4.   

    这个是向服务器请求数据的.. 
    暂时不存在上传。
    貌似没获取到服务器发送的数据..里面试着用一个服务定时访问一下服务器保持连接什么的..
    不知道有么有啥影响..
    public class PushMsgService extends Service{
            @Override
    public void onCreate() {
    this.myThread=new MsgThread();
    this.myThread.start();
    super.onCreate();
    };
    private class MsgThread extends Thread{
    /* (non-Javadoc)
     * @see java.lang.Thread#run()
     */
    @Override
    public void run() {

    while (flag) {
    try {
    Thread.sleep(60*1000); //每隔一分钟访问一次服务器
    } catch (Exception e) {
    e.printStackTrace();
    }
    msger.getServerRequest();
    }
    }
    }
    }private void openServer() {
    Intent intent=new Intent(this,PushMsgService.class);
    startService(intent);
    }
      

  5.   

    那可能read时就连接超时。
    心跳是可以,不过这样的service感觉容易被杀死,需呀判断主程序是否存在?
    找下开源框架,貌似有个叫volley的通信框架不知道适合你的项目么