在fragment里 声明内部类MyAsyncTask继承AsyncTask
怎么样在MyAsyncTask里创建一个ProgressDialog 呢
假如在内部类里这样声明的话 CONTEXT怎么样写 请教
private ProgressDialog progressDialog=new ProgressDialog( context );
怎么样在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
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只有doInBackground方法是子线程中运行的,其他方法都是在调用线程中运行。