show progressdialog util运行一个滞后方法

时间:2012-10-22 16:30:12

标签: android progressdialog

我的应用程序 - 从n jpg图像创建一个gif图像。 这种方法必须读取很多图像,因此需要很长时间。我想在这个方法运行时显示progressdialog。 请帮帮我,任何想法或源代码示例! 感谢

2 个答案:

答案 0 :(得分:2)

如果您只是在UI线程(不推荐)上执行此操作,它将如下所示:

private void myMethodThatTakesALongTime() {
    ProgressDialog progressDialog;
    progressDialog = new ProgressDialog( getActivity() );
    progressDialog.setIndeterminate( true );
    progressDialog.setMessage( "Please Wait..." );
    progressDialog.show();

    // Do expensive operations

    progressDialog.dismiss();
}

我建议将所有这些放入AsyncTask中。它看起来像这样:

private class MyAsyncTask extends AsyncTask<String, String, String> {

    private ProgressDialog progressDialog;

    protected void onPreExecute() {

        //show your dialog before you start

        progressDialog = new ProgressDialog( getActivity() );
        progressDialog.setIndeterminate( true );
        progressDialog.setMessage( "Please Wait..." );
        progressDialog.show();
    }

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

        // do expensive operations in here

        return null;
    }

    @Override
    public void onPostExecute( String result ) {

        //dismiss your dialog when done

        if ( progressDialog != null && progressDialog.isShowing() ) {

            progressDialog.dismiss();
        }
    }
}

您可以使用以下行开始此操作:

new MyAsyncTask().execute( String[] {} );

答案 1 :(得分:0)

你需要在这里做两件事。 首先使用oncreateDialog()方法创建您的dialoge。 其次,您应该使用async任务来执行长时间运行的任务。启动异步任务时,您可以显示您的拨号,当您完成任务并返回到您的活动时,您可以再次将其解除。