0

OnResume(),我在这里的线程中进行 Web 服务调用,我使用进度条来指示它工作正常的过程,但假设我使用该应用程序后一段时间我让设备空闲,然后再次打开应用程序,这次进度条不会被关闭。它是不经常发生有时会发生。为什么?
我怎样才能让它远离这个?如果您需要更多信息,请告诉我。

代码 :

编辑:

public void onResume()
{

    super.onResume();
    pdMessages = ProgressDialog.show(getParent(), "", "Please wait...", true);
            Thread thImportbtn = new Thread() 
            {
                public void run() 
                {
                    try
                    {
                        //Get internal messages
                        strInternalInboxWSR = GetInternalInboxMessages();


                    } catch (SoapFault e) {
                        e.printStackTrace();
                    }   

                    dh_Messages_Handler.post(checked_internalinbox_response);
                    handler.sendMessage(handler.obtainMessage());
                }                                               
            };
            thImportbtn.start();       
}

私人处理程序处理程序=新处理程序(){

@Override
public void handleMessage ( Message message )
{
    pdMessages.dismiss();
}

};

4

2 回答 2

2

您可以使用处理程序类来关闭您的 ProgressDialog,如下所示

private Handler handler = new Handler()
{
    @Override
    public void handleMessage ( Message message )
    {
        progressDialog.dismiss();
    }
};

您可以使用以下语句调用 Handler 类,

handler.sendMessage(handler.obtainMessage());
于 2012-09-19T10:13:22.817 回答
0

你是Trying To Dismiss ProgressDialog in Non-UI Thread,所以不能解雇正确的。

你应该把你的解雇代码(pdMessages.dismiss();)放在处理程序中使用覆盖handleMessage method

使用AsyncTask更好。

于 2012-09-19T10:14:41.997 回答