2012-11-06 237 views
1

我正在開發Android開發。我有一個異步操作,但我的意圖是等待操作完成,之後,繼續執行我的程序。 我已經使用AsyncTask及其所有方法,但我得到了錯誤,因爲onPreExecute方法中我想顯示另一個Activity,所以我想我不能顯示另一個Activity。這就是我想等待完成異步操作的原因。等待異步操作完成android

問候

月1日編輯: 我用的AsyncTask(onPreExecute,doInBa ...,onPOST等...),但沒有方法效果。我理解AsyncTask類是如何工作的,但是當我調用一個異步第三方方法時,我想停止執行,因爲在需要的偵聽器中,我更改了字符串變量X的值,並且在調用我的方法後,使用第三方方法,我使用變量X.我得到了一個exeption因爲變量沒有更新。

+0

問題是什麼?如果您有錯誤,請發佈。 – Eric

+0

問題出在標題 –

+2

'onPostExecute'上。你沒有說過爲什麼這不起作用,你試圖解決它。 – Eric

回答

1

請閱讀並遵循AsynTask的示例。你需要覆蓋onPostExecute

+0

是的,我試過了,但我得到了同樣的錯誤 –

0

沒有entirley確定問題是什麼,但AsynTask有一個方法,你可以調用一切都完成後。一個好的做法是有一個對話或一個微調,顯示工作正在進行,然後解僱它。

class loadingTask extends AsyncTask<String, Void, String> { 

     protected String doInBackground(String... urls) { 
      //Do work 

     } 

     protected void onPostExecute(String s) { 
      ShowProgress.dismiss(); 

      Intent myIntent = new Intent(this, PostExAct.class); 
      startActivity(myIntent); 

     } 
    } 

在你上創建:

ShowProgress = ProgressDialog.show(MainActivity.this, "", 
      "Loading. Please wait...", true); 
    new loadingTask().execute("params here"); 

這將顯示一個對話框加載,當工作結束後,同時工作正在做,然後將被解僱。

+0

我理解你的例子,但我想等待一個異步操作完成,並且該異步操作顯示一個新的Activity,它可以發生嗎? –

+1

這就是'onPostExecute'只是意圖啓動你的新班級。查看修改。 – Nick