2012-01-20 60 views
1

我開發了一個應用程序,其中我在onPostExecute()方法中執行一些操作後,在異步任務中使用Async任務,並顯示警報。每件事情都可以正常工作,但問題是應用程序來自後臺而不是顯示警報時顯示黑色透明圖層。爲什麼會發生?有任何想法嗎??顯示黑色透明層而不是警報

這裏是我的代碼片段和步驟來重現問題:

請創建活動使用異步任務:

private class ImageUploaderTask extends AsyncTask<Void, Integer, Void> { 

    ProgressDialog mProgressDialog; 
    private void showLoading() 
    { 
     mProgressDialog = ProgressDialog.show(myActivity.this, 
       "Loading", "Please wait...", false, false); 
    } 
    private void dismissLoading() 
    { 
     mProgressDialog.dismiss(); 
    } 



    @Override 
    protected void onPreExecute() { 

     showLoading(); 



    } 

    @Override 
    protected Void doInBackground(Void... arg0) { 
     try 
     { 
     Thread.sleep(50000); 
     } 
     catch (Exception e) { 
      // TODO: handle exception 
     } 
    } 



    @Override 
    protected void onPostExecute(Void result) { 
     dismissLoading(); 
     showAlert(myActivity.this,"Info","Process Finished."); 

    } 
    public void showAlert(Context context, String Title, String Message) { 
     AlertDialog.Builder alertbox = new AlertDialog.Builder(context); 
     alertbox.setTitle(Title); 
     alertbox.setMessage(Message); 
     alertbox.setCancelable(false); 
     alertbox.setPositiveButton("OK",null); 
     alertbox.show(); 
    } 
    @Override 
    protected void onCancelled() { 
     dismissLoading(); 
    } 
} 

步驟來重現問題:

1)啓動異步任務並將應用程序發送到後臺

2)確保異步任務已完成並將應用程序置於前臺

3)而不是警報它會顯示黑色tranparent屏幕。

回答

0

也許嘗試從活動的生命週期和問題落實的onResume()都將迎刃而解;-) 它可以檢查的AsyncTask是否已經完成,並得到屏幕,並正確顯示警告...

相關問題