Android ProgressDialog不';不显示
当我的活动获取一些数据时,我希望出现一个进度对话框。我使用了异步任务,但是它没有显示 我已经尝试了前面堆栈溢出问题的所有答案,但似乎没有一个适合我Android ProgressDialog不';不显示,android,android-asynctask,progressdialog,Android,Android Asynctask,Progressdialog,当我的活动获取一些数据时,我希望出现一个进度对话框。我使用了异步任务,但是它没有显示 我已经尝试了前面堆栈溢出问题的所有答案,但似乎没有一个适合我 private class BackgroundSync extends AsyncTask<Void,Void,Void> { ProgressDialog progress = new ProgressDialog(MainActivity.this); @Override protected void on
private class BackgroundSync extends AsyncTask<Void,Void,Void> {
ProgressDialog progress = new ProgressDialog(MainActivity.this);
@Override
protected void onPreExecute() {
progress.setMessage("Loading");
progress.setTitle("Loading");
progress.show();
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... voids) {
/get data
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
progress.dismiss();
super.onPostExecute();
}
}
我该怎么办?此ProgressDialog
问题花了2个多小时才解决使用此代码
private class BackgroundSync extends AsyncTask<Void, Void, Void> {
private ProgressDialog dialog;
public BackgroundSync(MyMainActivity activity) {
dialog = new ProgressDialog(activity);
}
@Override
protected void onPreExecute() {
dialog.setMessage("Loading");
dialog.setTitle("Loading");
dialog.show();
}
@Override
protected Void doInBackground(Void... args) {
// do background work here
return null;
}
@Override
protected void onPostExecute(Void result) {
// do UI work here
if (dialog.isShowing()) {
dialog.dismiss();
}
}
}
私有类后台同步扩展异步任务{
私人对话;
公共背景同步(MyMain活动){
dialog=新建进度对话框(活动);
}
@凌驾
受保护的void onPreExecute(){
设置消息(“加载”);
对话框.setTitle(“加载”);
dialog.show();
}
@凌驾
受保护的Void doInBackground(Void…args){
//在这里做背景工作
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
//UI在这里工作吗
if(dialog.isShowing()){
dialog.dismise();
}
}
}
问题在于您的主要活动。请查看上述建议以了解更多详细信息
private class BackgroundSync extends AsyncTask<Void, Void, Void> {
private ProgressDialog dialog;
public BackgroundSync(MyMainActivity activity) {
dialog = new ProgressDialog(activity);
}
@Override
protected void onPreExecute() {
dialog.setMessage("Loading");
dialog.setTitle("Loading");
dialog.show();
}
@Override
protected Void doInBackground(Void... args) {
// do background work here
return null;
}
@Override
protected void onPostExecute(Void result) {
// do UI work here
if (dialog.isShowing()) {
dialog.dismiss();
}
}
}