2014-01-08 4 views
0

Я разрабатываю приложение, использующее nojs как сервер, и его основная функция - загрузить изображение, видео и отметить сервер.Как реализовать ожидающую загрузку на сервер android

Я хочу позаботиться о ситуации, когда у пользователя есть ограничение по пропускной способности или нет подключения к Интернету, поэтому я хочу, чтобы весь файл в моем приложении изменил статус в ожидании и подождал, когда пользователь вернется к интернет-соединению.

вот мой код в классе AsyncTask загрузить

 File file = new File(imgPath); 

     //Create the POST object 
     HttpPost post = new HttpPost(url); 


     MultipartEntity entity = new MyMultipartEntity(new ProgressListener() 
     { 
      @Override 
      public void transferred(long num) 
      { 
       //Call the onProgressUpdate method with the percent completed 
       publishProgress((int) ((num/(float) totalSize) * 100)); 
       Log.d("DEBUG", num + " - " + totalSize); 
      } 
     }); 
     //Add the file to the content's body 
     ContentBody cbFile = new FileBody(file, "video/mp4"); 
     entity.addPart("source", cbFile); 

     //After adding everything we get the content's lenght 
     totalSize = entity.getContentLength(); 

     //We add the entity to the post request 
     post.setEntity(entity); 

     //Execute post request 
     HttpResponse response = client.execute(post); 
     int statusCode = response.getStatusLine().getStatusCode(); 

     if(statusCode == HttpStatus.SC_OK){ 
      //If everything goes ok, we can get the response 
      String fullRes = EntityUtils.toString(response.getEntity()); 
      Log.d("DEBUG", fullRes); 

     } else { 
      Log.d("DEBUG", "HTTP Fail, Response Code: " + statusCode); 
     } 

любую идею, чтобы решить эту проблему?

ответ

0

Вам необходимо реализовать широковещательный приемник, который вызывается при изменении связи на устройстве.

Когда вы получаете сообщение, вы можете проверить все ожидающие загрузки и продолжить (вам понадобится реализовать эту логику).

Ваш широковещательный приемник должен обрабатывать android.net.conn.CONNECTIVITY_CHANGE. Как это сделать, хорошо документировать здесь на SO или хорошее место для начала - The Android Connectivity Manager

Смежные вопросы