gpt4 book ai didi

android - AsyncTask 不显示 ProgressDialog

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:51:30 26 4
gpt4 key购买 nike

我正在使用 AsyncTask(我在我的主要 Activity 中开始)加载一些数据:

Context context = VehicleTabView.this;
ProgressDialog progressDialog = new ProgressDialog(context);
progressDialog.setMessage("Loading...");
new LoadingVehicles(context, progressDialog).execute(null, null, null);

这是异步类:

package com.example.schedule_vehicles;

import com.example.utils.VehicleNames;

import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;

// Showing a ProgressDialog once loading the list of vehicles is completed using an AsyncTask
public class LoadingVehicles extends AsyncTask<Void, Void, Void> {
Context context;
ProgressDialog progressDialog;

public LoadingVehicles(Context context, ProgressDialog progressDialog) {
this.context = context;
this.progressDialog = progressDialog;
}

@Override
protected void onPreExecute() {
progressDialog.show();
}

@Override
protected Void doInBackground(Void... params) {
new VehicleNames(context);

return null;
}

@Override
protected void onPostExecute(Void result) {
progressDialog.dismiss();
}
}

ProgressDialog 没有显示在屏幕上的问题。

我键入 Log.d,以查看程序是否正在经历所有阶段 - onPreExecute、doInBackground、onPostExecute,它正在经历所有阶段并完成我需要的工作。 但是 ProgressDialog 没有显示。这个东西我看了很多资料,好像PRE和POST执行都是由主线程启动的,被DOINBACKGROUND方法阻塞了,这就是看不到ProgressDialog的原因。我试图找到一些解决方法的答案 - 但没有成功。

如果有人遇到过这个问题,请分享您的经验。非常感谢!

最佳答案

您正在将 ProgressDialog 传递给任务,只是在启动 AsyncTask 之前显示()它,而不是从 AsyncTask 内部。

关于android - AsyncTask 不显示 ProgressDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11991071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com