0

我正在我的异步任务预执行中启动进度对话框,同时如果我得到广播并且如果我在广播接收器中执行一些耗时的操作,进度对话框不会被解除。异步任务独立于广播接收器。提前谢谢你。任何帮助表示赞赏。

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

        @Override
        protected void onPreExecute() {

            super.onPreExecute();

            progressDialog.setMessage(context.getResources().getText(
                    R.string.disconnecting));
            progressDialog.show();


        }

        @Override
        protected Void doInBackground(String... params) {

             CommunicationManager.getInstance().Disconnecting(
                    params[0]);

            return null;

        }

        @Override
        protected void onPostExecute(Void result) {

            super.onPostExecute(result);




                progressDialog.dismiss();

        }

    }


 private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {

            String lostId = intent.getStringExtra("ID");

            System.out.println("LOST ID" + lostId);




        }
    };

我认为这个问题与多任务处理有关。当控制在广播接收器中时(在接收器中花费更多时间),异步任务进度对话框不会被关闭

4

2 回答 2

1

最后我得到了解决方案。我已经声明进度对话框是全局的,所以在关闭时出现问题。现在我在异步任务中声明了对话框,它工作了..进度对话框正在被关闭。

于 2012-09-24T04:18:59.837 回答
0

像这样使用来关闭进度条:

protected void onPostExecute(Void result) {
    // TODO Auto-generated method stub

    super.onPostExecute(result);
    if (p_dialog != null && p_dialog.isShowing())
        p_dialog.dismiss();
                {//To do task...
                 }
于 2012-09-12T12:26:53.467 回答