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();       
}

プライベート ハンドラー ハンドラー = 新しい Handler() {

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

};

4

2 に答える 2

2

以下のように、Handler クラスを使用して 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 に答える