启动从AlertDialog(安卓)长时间运行的任务

问题描述:

我有一个AlertDialog在和它有一个按钮,如果选中,将启动文件上传到这样的远程服务器:启动从AlertDialog(安卓)长时间运行的任务

builder.setMessage(text)     
.setCancelable(false) 
.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int id) { 
uploadFile(); 
}}) 

这工作正常,唯一的问题是uploadFile()可能需要很长时间(30秒到2分钟)。我想用进度对话框(甚至是不确定的)替换AlertDialog,但我看不到如何从另一个对话框启动一个对话框?

任何人都可以提供一些建议,我可以做到这一点。

感谢, Jarabek

您可以使用AsyncTask这里,让您的ProgressDialogPreExecute()并呼吁在doingInBackground()方法和罢免ProgressDialog在PostExecute().

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

     ProgressDialog mProgressDialog; 
     @Override 
     protected void onPostExecute(Void result) { 
      mProgressDialog.dismiss(); 
     } 

     @Override 
     protected void onPreExecute() { 
      mProgressDialog = ProgressDialog.show(ActivityName.this, "Loading...", "Data is Loading..."); 
     } 

     @Override 
     protected Void doInBackground(Void... params) { 
      uploadFile(); 
      return null; 
     } 
    } 

然后,只需调用MyAsyncTask使用new MyAsyncTask().execute();

+0

这正是我所期待的。谢谢。 – jarabek 2011-12-15 17:30:47

这样做的最好方法 - 使用AsyncTask。在那里你可以提供进步,并做你的长期行动