2012-03-17 87 views
0

我通過創建一個對象從函數中調用它。進度框出現然後消失,但不顯示吐司(我已經刪除了吐司後面的代碼,但是即使是代碼中的查詢該網頁不在doinBackground中執行)Android異步任務不起作用

private class MyTask extends AsyncTask<Void, Void, Void> { 

    MyTask(String p) { 
     enter=p; 
    } 

    protected void onPreExecute() { 
     progressDialog = ProgressDialog.show(CheckitoutActivity.this,"", "Loading. Please wait...", true); 
    } 

    protected Void doInBackground(Void... params) { 
     try { 
      Toast.makeText(getApplicationContext(), "GHJGFHGJL",1000).show(); 
     } 
    } 


    @Override 
    protected void onPostExecute(Void result) { 
     progressDialog.dismiss(); 
    } 

} 

doInBackground不應該被調用。即使是吐司也不會顯示,那爲什麼呢。

+0

您是否開始該任務?日誌中是否有錯誤? – zapl 2012-03-17 12:23:27

回答

2

您不能在doInBackground方法中顯示像烤麪包和對話框警報這樣的UI。相反,您可以在asynkTask的postExecute方法中顯示這些UI

+0

感謝您的幫助 – user1092042 2012-03-17 13:04:38

2

doInBackground方法是非UI線程,所以它不能dispaly舉杯

因此,使用runOnUIthread(this)onProgressUpdate和肯定.execute()與 對象,像objMytask.execute();

2

Toast(你不能觸摸UI線程從doInBack()這就是爲什麼)不doInBackground()作品所以只是把日誌

protected Void doInBackground(Void... params) { 
try 
{ 
    Log.e("AsyncTask","Inside the doInBackground()"); 
} 
} 

現在檢查您的logcat ...如果ProgressDailog顯示,那麼您的AsyncTask是行之有效的。

+0

謝謝你們的幫助。看起來,吐司被放在doinbackgroung裏面,並且靜靜地停下來時,吐司正在拋出異常。 – user1092042 2012-03-17 13:04:27