Pau*_*ues 2 android handler progressdialog
我发现这个代码在SO中显示ProgressDialog加载时Activity:
progDailog = ProgressDialog.show(MyActivity.this, "Process", "please wait....", true, true);
new Thread(new Runnable() {
public void run() {
// code for load activity
}).start();
Handler progressHandler = new Handler() {
public void handleMessage(Message msg1) {
progDailog.dismiss();
}
};
Run Code Online (Sandbox Code Playgroud)
但我总是得到这个例外:
java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序
感谢您对此问题的任何帮助,在此先感谢您.
这是我要做的,
AsyncTask在后台做"繁重的工作":
public class MyTask extends AsyncTask<String, String, String> {
private Context context;
private ProgressDialog progressDialog;
public MyTask(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(context);
progressDialog.show();
}
@Override
protected String doInBackground(String... params) {
//Do your loading here
return "finish";
}
@Override
protected void onPostExecute(String result) {
progressDialog.dismiss();
//Start other Activity or do whatever you want
}
}
Run Code Online (Sandbox Code Playgroud)
启动AsyncTask:
MyTask myTask = new MyTask(this);
myTask.execute("parameter");
Run Code Online (Sandbox Code Playgroud)
当然,您可以更改AsyncTask的泛型类型以匹配您的问题.
| 归档时间: |
|
| 查看次数: |
6226 次 |
| 最近记录: |