2012-07-09 30 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