使用类的AsyncTask / ProgressDialog调用静态方法

时间:2012-08-24 05:38:24

标签: android static android-asynctask progressdialog static-methods

所以我对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类文件,我该怎么做才能解决这个问题。我知道这有效,但我只想为整个课程制作一个文件,这样我就可以在多个程序中使用它。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

在调用函数时检查是否传递应用程序上下文或活动上下文。

使用应用程序上下文,您无法显示进度条。如果是这种情况,请尝试传递活动上下文。

SomeFunction(ActivityName.this,"path");