2016-03-18 2 views
0

Я хочу знать размер URL-адреса, чтобы загрузить файл, но его сбой во время выполнения. Вот мой код:Неисправность при расчете размера URL-адреса

public class MainActivity extends AppCompatActivity { 
    TextView t1; 
    private int i; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     t1=(TextView)findViewById(R.id.text1); 
     try { 


      URL url = new URL("https://www.planwallpaper.com/static/images/beautiful-sunset-images-196063.jpg"); 
      URLConnection conection = url.openConnection(); 
      conection.connect(); 
      // getting file length 
      i = conection.getContentLength(); 

     } 
     catch (Exception e) { 
      Log.e("Error: ", e.getMessage()); 
     } 

     t1.setText(i + "MB"); 
    } 
} 

ответ

0

все URL задачи сделано в фоновом режиме, поэтому использовать Async класс Task для этого ........ Ниже код ...... выглядеть следующим образом

class SignInAsyntask extends AsyncTask<String, String, String> { 

      String result; 

      @Override 
      protected void onPreExecute() { 

       super.onPreExecute(); 

      } 

      @Override 
      protected String doInBackground(String... strings) { 

       // doing all url works................. 
        return result; 
      } 

      @Override 
      protected void onPostExecute(String response) { 

       super.onPostExecute(response); 


       Log.e("Result", response); 

      } 
     } 

и назвать его OnCreate () метод выглядит как tis ......

new SignInAsyncTask().execute(); 
0

Причина поломки Вашего приложения, потому что вы получаете доступ к сети на основной поток. Вы должны сделать сетевой вызов в фоновом потоке , используя AsyncTask.

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