2013-11-20 83 views
0

如何在AsyncTask中顯示對話框。在dialog.show()中獲取BadToketException; 我嘗試了很多方法,但我無法解決它。

還試圖以不同的方式將上下文傳遞給對話框,但它給了我相同的結果。

public class RetriveStock extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected Void doInBackground(Void... params) { 
     message = client.clientReceive(1); // I get data here. 

     return null; 
    } 

    @Override 
    protected void onCancelled() { 
     super.onCancelled(); 
    } 

    @Override 
    protected void onPostExecute(Void result) { 

     if (message.contains("AlertExecuted:")) { 
       final Dialog dialog = new Dialog(CreateAlert.this); 
       dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
       dialog.setContentView(R.layout.display_dialog);// Dialog layout 
       TextView dialogText = (TextView) dialog.findViewById(R.id.digMsg); 

       dialogText.setText("Alert Executed!"); 
       Button ok = (Button) dialog.findViewById(R.id.ok); 

       ok.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         dialog.dismiss(); 
        } 
       }); 
       try { 
        dialog.show(); //WindowManager$BadTokenException 
       } catch (Exception e) { 

        e.printStackTrace(); 
       } 

     } 
     super.onPostExecute(result); 

    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
    } 

    @Override 
    protected void onProgressUpdate(Void... values) { 
     super.onProgressUpdate(values); 
    } 

} 

請大家幫忙。在預執行和停止onpostexecute

回答

0
protected void onPreExecute() { 
     // TODO Auto-generated method stub 



     //   progressDialog = ProgressDialog.show(this, "", "loading news content"); 
     progressDialog = new ProgressDialog(context , AlertDialog.THEME_HOLO_LIGHT); 
     progressDialog.setMessage(""+getString(R.string.laodnews)); 
     progressDialog.setIndeterminateDrawable(getResources().getDrawable(R.drawable.animate)); 
     progressDialog.setCancelable(false); 
     progressDialog.show(); 

}

開始dailoge ..

+0

我試着如你所建議的,但得到相同的例外。 – user2085965

0

是manifest..if CreateAlert註冊活動沒有,那麼你必須通過註冊的活動情境

+0

是的,它是在清單中註冊的活動。你的意思是註冊活動是這樣的權利。 user2085965

+0

如果您的RetriveStock在同一個CreateAlert類中,那麼如果您的代碼不在您的類的外部,那麼您的代碼沒有問題,那麼您需要通過CreateAlert活動通過,請檢查 – Pavan

+0

RetriveStock只有CreateAlert類。 – user2085965

相關問題