android - 异步任务 OnPreExecute 方法 Android 中的进度对话框

标签 android android-activity android-asynctask progressdialog

我有 MainActivity.java Activity 类,它在应用程序启动时加载。我在名为 ServerOperation.java 的单独文件中使用 asyncTask 方法。我需要在 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 在主要 Activity 上工作?

谢谢。

最佳答案

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

可以将Activity Context传递给Asynctask的构造函数

调用 Aysnctask 为

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

在主 Activity 中

然后

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

 }

然后

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

关于android - 异步任务 OnPreExecute 方法 Android 中的进度对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24637799/

相关文章:

android - SurfaceView 还是 GLSurfaceview?

java - 启用陀螺仪

java - 使用线程的 Intent 不起作用

android - onSaveInstanceState 不起作用

java - 安卓开发 : java NullPointerException When Trying To getStringExtra()

android - 实现覆盖 Activity 的倒数计时器

Android:微调器显示来自网络服务的内容

java - 错误 : 'SDL init failure, reason is: No available video device' when launching AVD

android - 如何使edittext看起来像android中的页面

java - AsyncTask 未正确运行