2012-07-09 61 views
2

我需要上传一个文件到后台服务器,我在asynctask中做了这个,但是,如果我没有互联网,我想稍后上传。 其实,如果没有网络,asynctask崩溃。在后台上传文件,服务?

request.addProperty(file); 

      envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12); 
      new MarshalBase64().register(envelope); // serialization 

      envelope.encodingStyle = SoapEnvelope.ENC; 
      envelope.bodyOut = request; 

      envelope.dotNet = true; 
      envelope.setOutputSoapObject(request); 
      envelope.setAddAdornments(false); 
      envelope.implicitTypes = true; 

      HttpTransportSE transporte = new HttpTransportSE(URL); 
      transporte.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 
      transporte.debug = true; 

      try { 
       transporte.call(SOAP_ACTION, envelope); 
       result = (SoapObject) envelope.getResponse(); 

应该是什么?一个服务,检查互联网连接,以及何时开启,上传文件?其他想法?

任何人都有一个例子吗?由于

+0

检查编辑答案 – Nitin 2012-07-09 07:16:12

回答

2

就用这种方法检查coneection

public boolean isOnline() { 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 



     if (cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnectedOrConnecting()) 
     return true; 
     return false; 

     } 

internetconnection= isOnline(); 
    if(internetconnection==true){ 
    //performtask 
    } 

,那么你必须创建撒施reciever像 创造了广阔的投reciever并使用此

<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 

清单 它会运行时永远有互联网的状态是变化。在这检查,如果它在线然后上传图像

+0

是的,但如果离线,我想稍后上传文件..我怎么能做到这一点? – rbrlnx 2012-07-09 07:06:47