在Android中开始活动之前如何显示进度对话框?
如何在Android中启动一个活动(即活动正在加载一些数据)之前显示进度对话框?
您应该在AsyncTask中加载数据,并在数据加载完成后更新界面。
你甚至可以在你的AsyncTask的onPostExecute()
方法中开始一个新的活动。
更具体地说,您将需要一个扩展AsyncTask的新类:
public class MyTask extends AsyncTask<Void, Void, Void> { public MyTask(ProgressDialog progress) { this.progress = progress; } public void onPreExecute() { progress.show(); } public void doInBackground(Void... unused) { ... do your loading here ... } public void onPostExecute(Void unused) { progress.dismiss(); } }
然后在你的活动中你会做:
ProgressDialog progress = new ProgressDialog(this); progress.setMessage("Loading..."); new MyTask(progress).execute();
当你在Android上开始一个长时间运行的进程时,总是build议在另一个线程上执行。 然后,您可以使用UI线程显示进度对话框。 您不能在运行进程的相同(UI)线程中显示进度对话框。
执行以下操作来启动您的过程
pd = ProgressDialog.show(this, "Synchronizing data", "Please wait..."); Thread t = new Thread(this); t.start();
为此,您的活动应按如下方式实现Runnable
public class SyncDataActivity extends Activity implements Runnable
最后是一个执行长时间运行过程的方法
@Override public void run() { //your code here }