我用socket上传数据到服务器,为了防止上传时间过长,所以将这一部分放在后台处理,但是onPostExecute已经运行了,也就是说doInBackground函数已经运行完毕,但是上传却没有成功,将上传代码放在Activity中操作,文件成功上传,这是为什么呢?如果像调试后台程序,应该如何进行啊?
后台运行代码如下:package lmx.graduate;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;import android.os.AsyncTask;
import android.os.Environment;
import android.util.Log;
import android.widget.TextView;public class uploadAsyncTask extends AsyncTask<String, Integer, String>{

 public uploadAsyncTask(TextView textView)
 {
 this.textView = textView;
 }
protected String doInBackground(String...param){

int i = 0;
for(i=1;i<=10000;i++)
publishProgress(i);
String path = getSDPath() +"/upload.txt";
 try{ 
         FileInputStream fileIS = new FileInputStream(path); 
         BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS,"utf-8")); 
         String readString = new String(); 
         int k = 0;
          while((readString = buf.readLine())!= null){ 
          k++;
          Log.v("error", readString);
          
          //向服务器发送信息
          Socket socket = null;
          try{
          socket = new Socket("192.168.11.17",54321);
         //向服务器发送信息
  PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
  out.println(readString);
  System.out.println(readString);
  //接受服务器的信息
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String mstr=br.readLine();
if(mstr!=null)
{
System.out.println(mstr);
}else
{
System.out.println("数据错误");
}
System.out.println("shangchuan");
out.close();
br.close();
socket.close();
          }
          catch (Exception e) {
// TODO: handle exception
}
          } 
          fileIS.close(); 
          } catch (FileNotFoundException e) { 
          e.printStackTrace(); 
        
          } catch (IOException e){ 
          e.printStackTrace(); 
         }


return null;
}
//在doInBackground执行完毕后执行
protected void onPostExecute(String result)
{
textView.setText("本次上传已完成");
}
//在调用异步线程之后第一个执行,在主线程中进行
/**
 * 
 * @param 
 * @return 
 * @author Administrator
 */
protected void onPreExecute()
{
textView.setText("开始上传");
}
protected void onProgressUpdate(Integer...values){
//textView.setText("请勿选择继续上传,请勿退出,系统正在上传,"+Integer.toString(values[0]));
textView.setText("请勿选择继续上传,请勿退出,系统正在上传");

}

    public String getSDPath(){ 
     File sdDir = null; 
     boolean sdCardExist = Environment.getExternalStorageState() 
     .equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在 
     if (sdCardExist) 
     { 
     sdDir = Environment.getExternalStorageDirectory();//获取跟目录 
     } 
     return sdDir.toString();      }  }