Android-在扩展AsyncTask的单独类中显示进度对话框
我有一个名为Android-在扩展AsyncTask的单独类中显示进度对话框,android,android-asynctask,Android,Android Asynctask,我有一个名为myAPI的类,用于从服务器数据库获取信息。这个类有几个用于获取个人信息的类,例如getCourseInformation,login,register,等等 它工作得很好,直到我意识到我真的需要一个ProgressDialog。确切地说,是一个不确定的进程对话框 尝试这样做: ProgressDialog progressDialog; Context context; public myAPI(Context context) { thi
myAPI
的类,用于从服务器数据库获取信息。这个类有几个用于获取个人信息的类,例如getCourseInformation
,login
,register
,等等
它工作得很好,直到我意识到我真的需要一个ProgressDialog
。确切地说,是一个不确定的进程对话框
尝试这样做:
ProgressDialog progressDialog;
Context context;
public myAPI(Context context)
{
this.context= context;
}
public myAPI()
{
}
获取调用myAPI
的类的上下文
下面是我在课堂上如何使用它
public class login extends AsyncTask<MyLogin, String, String>{
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(context);
progressDialog.setMessage("Loading...");
progressDialog.setIndeterminate(true);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setCancelable(true);
progressDialog.show();
}
...
}
公共类登录扩展异步任务{
@凌驾
受保护的void onPreExecute(){
progressDialog=新建progressDialog(上下文);
progressDialog.setMessage(“加载…”);
progressDialog.setUndeterminate(true);
progressDialog.setProgressStyle(progressDialog.STYLE_微调器);
progressDialog.setCancelable(真);
progressDialog.show();
}
...
}
但它不起作用。它表示无法添加窗口--令牌null不适用于应用程序
调试了它,我可以看到上下文在那里。。所以不应该是这样的。。任何导游都将不胜感激 不要使用上下文,而要尝试使用活动
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(getActivity());
progressDialog.setMessage("Loading...");
progressDialog.setIndeterminate(true);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setCancelable(true);
progressDialog.show();
}
您将传递给
myAPI
的是什么类型的Context
?它是调用它的类中的Context
,例如LoginClass
调用login
方法myAPI
类我的意思是,此上下文是活动的实例还是由getApplicationContext()
或getBaseContext()
返回的?噢,它是一个实例。。如果通过实例,它意味着我从活动传递上下文,那么是的..问题是,它在另一个类中,并且它不扩展活动
。。将它作为一个实用类,我想..?progressDialog需要附加到一个活动,因此可能会以与传递contextOhh相同的方式传递该活动,嗯,因此我应该将其设置为progressDialog=new progressDialog(活动)代码>在实例化上面的活动之后?或者我是否应该将类扩展到活动
并执行progressDialog=newprogressdialog(myAPI.this)代码>?等等,附加到活动
,这意味着我无论如何都必须通过它?