在我的應用中,我正在AsyncTask按照Android教程的建議進行大量工作,并ProgressDialog在我的主要活動中顯示:dialog = ProgressDialog.show(MyActivity.this, "title", "text");new MyTask().execute(request);然后在稍后MyTask將結果發(fā)布回活動的地方:class MyTask extends AsyncTask<Request, Void, Result> { @Override protected Result doInBackground(Request... params) { // do some intense work here and return result } @Override protected void onPostExecute(Result res) { postResult(res); }}在結果發(fā)布中,在主要活動中,我隱藏對話框:protected void postResult( Result res ) { dialog.dismiss(); // do something more here with result...}因此,此處一切正常,但是我想以某種方式更新進度對話框,以便向用戶顯示一些實際進度,而不是僅顯示虛擬的“ Please wait ...”消息。我能以某種方式從MyTask.doInBackground所有工作完成的地方訪問進度對話框嗎?據我了解,它是作為單獨的線程運行的,因此我無法從那里“與”主活動“交談”,這就是為什么我onPostExecute經常將結果推回去。但是問題是onPostExecute只有在所有工作都已經完成并且在執(zhí)行某項操作的過程中我想更新對話框時,才調用該方法。任何提示如何做到這一點?
從AsyncTask更新活動中的進度對話框
慕的地6264312
2019-11-02 14:06:56