我的应用程序 - 从 n 个 jpg 图像创建一个 gif 图像。这种方法要读取很多图像,所以需要很长时间。我想在此方法运行时显示进度对话框。请帮助我,任何想法或源代码示例!谢谢
问问题
637 次
2 回答
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[] {} );
于 2012-10-22T17:03:11.010 回答
0
你需要在这里做两件事。首先使用oncreateDialog () 方法来创建你的对话。其次,您应该使用异步任务来执行长时间运行的任务。在启动异步任务时,您可以显示您的对话,当您完成任务并返回您的活动时,您可以再次关闭它。
于 2012-10-22T16:38:50.377 回答