asyncTask中的进度对话框OnPreExecute方法Android

时间:2014-07-08 17:12:38

标签: android android-activity android-asynctask progressdialog

我有MainActivity.java Activity类,在应用程序启动时加载。我在名为asyncTask的sperate文件中使用ServerOperation.java方法。我需要在asyncTask的onPreExecute方法中显示进度条。我正在使用以下代码,但它没有工作和应用程序崩溃:

public class ServerOperation extends AsyncTask<Void, Void, ArrayList<Job>> {
ProgressDialog progressDialog;

@Override
protected void onPreExecute() {
    super.onPreExecute();
    MainActivity myActivity = new MainActivity();
    progressDialog = ProgressDialog.show(myActivity.getApplicationContext(),"PLEASE WAIT","LOADING JOBS...", true);
}
}

我应该如何使progressDialog在主要活动上工作?

感谢。

1 个答案:

答案 0 :(得分:3)

你应该永远不要创建Acitvity类的实例。它不是一个普通的java类。

您可以将活动上下文传递给Asynctask的构造函数

调用Aysnctask为

 new ServerOperation(MainActivity.this).execute(params);
MainActivity中的

然后

 Context mContext;
 public ServerOperation (Context context)
 {
       mContext =context;

 }

然后

  progressDialog = ProgressDialog.show(mContext,"PLEASE WAIT","LOADING JOBS...", true);