2013-12-12 177 views
1

我在這裏看到了所有類似的問題,因此我在其他活動中使用AsyncTask,但僅在這一個中調用onPostexecute。onPostExecute沒有在AsyncTask上調用Android

這裏是我的代碼後小時oof嘗試。

class GetCamera1Task extends AsyncTask<Void, Void, Integer> { 

     private final ProgressDialog dialog = new ProgressDialog(
       CameraGallery.this); 

     @Override 
     protected void onPreExecute() { 
      this.dialog.setMessage("Loading..."); 
      this.dialog.show(); 
     } 

     protected void onPostExecute(int result) { 
      System.out.println("onPostExecute"); 
      this.dialog.dismiss(); 


     } 

     @Override 
     protected Integer doInBackground(Void... params) { 
      // TODO Auto-generated method stub 
      bitmapResult1 = getBitmapFromURL(url[0]); 
      bitmapResult2 = getBitmapFromURL(url[1]); 
     } 
      System.out.println("should return"); 

      return 1; 
     } 

    } 

其中所有變量都是全局變量。 正在打印應返回,但不會調用onPost執行。

我也盡我onBackground返回NULL和sceleton是這樣的:

class GetCamera1Task extends AsyncTask<Void, Void, Void> { 
protected void onPostExecute() { 
} 
protected Integer doInBackground(Void... params) { 
... return null; 
} 
} 

卻又什麼都沒有。

下載網址從位圖的代碼是這樣的:

public Bitmap getBitmapFromURL(String src) { 
     try { 
      URL url = new URL(src); 
      HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
      connection.setDoInput(true); 
      connection.connect(); 
      InputStream input = connection.getInputStream(); 
      Bitmap myBitmap = BitmapFactory.decodeStream(input); 
      return myBitmap; 
     } catch (IOException e) { 
      e.printStackTrace(); 
      return null; 
     } 
    } 
+0

同樣的問題和答案:請參閱http://stackoverflow.com/questions/6449438/asynctask-onpostexecute-not-being-called – user3080130

回答

6

您所定義的通用參數爲AsyncTask<Void, Void, Integer>,但隨後在onPostExecute()使用int。試着用

protected void onPostExecute(Integer result) 
0

更換

protected void onPostExecute(int result) 

添加@Override您onPostExecute()方法。它會強調你沒有正確地覆蓋它。然後將其更改爲:

@Override 
protected void onPostExecute(Integer result) 

你應該很好去。

3

在主UI線程上被調用。如果它沒有被調用,並且你嘗試了上面提到的所有其他技巧,這意味着你的UI線程被阻止做其他事情。

+0

這是2年前回答的。 –

+4

我知道,但它解決我的問題的方式沒有在這裏提到。添加以便它可以幫助某人。 –

相關問題