我的应用程序 - 从n jpg图像创建一个gif图像。 这种方法必须读取很多图像,因此需要很长时间。我想在这个方法运行时显示progressdialog。 请帮帮我,任何想法或源代码示例! 感谢
答案 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任务来执行长时间运行的任务。启动异步任务时,您可以显示您的拨号,当您完成任务并返回到您的活动时,您可以再次将其解除。