2013-05-18 146 views
17

之前,我有一個線程,但我想等待它完成,然後繼續下一個動作。我怎麼能這樣做?等待線程繼續在Android

  new Thread(

        new Runnable() { 

         @Override 
         public void run() { 
          mensaje = getFilesFromUrl(value); 
         } 

        }).start(); 

在這裏,我想放的東西(但環路),它知道當線程完成和評估結果(mensaje

  btnOk.setVisibility(View.VISIBLE); 
      progressBar.setVisibility(View.GONE); 
      lblEstado.setText(mensaje); 

      if(mensaje.equals("Importado")) 
       startActivity(new Intent(ScanUrl.this, MainActivity.class)); 
+5

使用的AsyncTask和onPostExcute,或使用通知線程excutation的委託已結束 – Blackbelt

+0

或爲線程完成時添加回調監聽器 – Blundell

回答

33
Thread t = new Thread(new Runnable() { 
         @Override 
         public void run() { 
          mensaje = getFilesFromUrl(value); 
         }}); 

t.start(); // spawn thread 

t.join(); // wait for thread to finish 
+0

@RuchirBaronia,找不到url。 – CoolMind

+3

需要將t.join()放在try範圍中,如下所示:'try {t.join(); } catch(InterruptedException e){e.printStackTrace(); }' – Pioneer