AsyncTask里声明progressdialog的一个问题 请教

Android 码拜 7年前 (2017-04-16) 825次浏览
在fragment里 声明内部类MyAsyncTask继承AsyncTask
怎么样在MyAsyncTask里创建一个ProgressDialog 呢
假如在内部类里这样声明的话 CONTEXT怎么样写  请教
private ProgressDialog progressDialog=new ProgressDialog( context );
解决方案

10

你可以通过Asynctask的构造函数来传入对象

10

在AsyncTask里面创建ProgressDialog是肯定会报错的,AsyncTask相当于一个子线程,ProgressDialog组件不能运行在子线程中。本人有个例子仅供参考
1.
//本人的类是一个MainActivity
private ProgressDialog progressDialog;
private void initProgressDialog() {
progressDialog = new ProgressDialog(MainActivity.this); // fragment可以用getActivity()替代
progressDialog.setTitle(“In progress…”);
progressDialog.setMessage(“Loading…”);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setIndeterminate(false);
progressDialog.setMax(100);
progressDialog.setCancelable(true);
progressDialog.show();
}
2. 在onPreExecute中用handler发送消息出来,在handleMessage中调用initProgressDialog()
3. 同样在onPostExecute执行完后用handler发消息dismiss

20

引用:

在AsyncTask里面创建ProgressDialog是肯定会报错的,AsyncTask相当于一个子线程,ProgressDialog组件不能运行在子线程中。本人有个例子仅供参考
1.
//本人的类是一个MainActivity
private ProgressDialog progressDialog;
private void initProgressDialog() {
progressDialog = new ProgressDialog(MainActivity.this); // fragment可以用getActivity()替代
progressDialog.setTitle(“In progress…”);
progressDialog.setMessage(“Loading…”);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setIndeterminate(false);
progressDialog.setMax(100);
progressDialog.setCancelable(true);
progressDialog.show();
}
2. 在onPreExecute中用handler发送消息出来,在handleMessage中调用initProgressDialog()
3. 同样在onPostExecute执行完后用handler发消息dismiss

大兄弟,AsyncTask只有doInBackground方法是子线程中运行的,其他方法都是在调用线程中运行。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明AsyncTask里声明progressdialog的一个问题 请教
喜欢 (0)
[1034331897@qq.com]
分享 (0)