所以我对Android(和Java)比较陌生。我在AsyncTask
方法中创建了一个具有常规static
和ProgressDialog的类,因为我想从多个活动中调用它。
public class SomeClass {
// Some other methods, etc.
public static void SomeFunction(final Context context, String FilePath) {
new AsyncTask<Void, Void, Void>() {
private ProgressDialog dialog;
protected void onPreExecute() {
dialog = ProgressDialog.show(context, "", "Loading...", true);
}
protected Void doInBackground(Void... unused) {
for (int i=0; i<15000; i++)
System.out.println("Gatorade me, Bitch: " + i);
return null;
}
protected void onPostExecute(Void unused) {
dialog.dismiss();
}
}.execute();
}
}
问题在于声明
dialog = ProgressDialog.show(context, "", "Loading...", true);
在onPreExecute()
的{{1}}部分中出现错误。没有它,代码运行正常。
那么如果不为AsyncTask创建新的java类文件,我该怎么做才能解决这个问题。我知道这有效,但我只想为整个课程制作一个文件,这样我就可以在多个程序中使用它。
感谢您的帮助!
答案 0 :(得分:1)
在调用函数时检查是否传递应用程序上下文或活动上下文。
使用应用程序上下文,您无法显示进度条。如果是这种情况,请尝试传递活动上下文。
SomeFunction(ActivityName.this,"path");