gpt4 book ai didi

android - 即使在加载 View 后,我的 ProgressDialog 也不会关闭。

转载 作者:行者123 更新时间:2023-11-30 04:08:44 30 4
gpt4 key购买 nike

我想在我的 View 加载之前显示一个进度对话框。首先,我在 onCreate() 中编写了代码,但在这种情况下不会出现对话框。所以我在 onResume() 中写了它,但在这种情况下,即使在加载 View 后它也不会消失。谁能告诉我这里出了什么问题?

              protected void onResume() {
// TODO Auto-generated method stub

super.onResume();
dialog = ProgressDialog.show(this, "", "Please wait...", true);
//dialog.cancel();
new Thread()
{
public void run()
{

try
{

sleep(1500);

// do the background process or any work that takes time to see progress dialog

}
catch (Exception e)
{
Log.e("tag",e.getMessage());
}
// dismiss the progressdialog
dialog.dismiss();
}
}.start();
citySelected.setText(fetchCity);
spinner.setSelection(getBG);
}

最佳答案

您不能从其他线程更新 UI(位于主 UI 线程中)。如果您想在后台运行任何查询,可以使用 AsyncTask。

在 onPreExecute 方法中,显示对话框和 onPostExecute 你可以关闭对话框。

如果您想使用 Thread,则使用处理程序更新 UI。

使用异步任务

public class MyAsyncTask extends AsyncTask<String, Void, String> {
ProgressDialog dialog = new ProgressDialog(ActivityName.this);
@Override
protected void onPreExecute() {
dialog.show();
super.onPreExecute();
}

@Override
protected String doInBackground(String... params) {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

@Override
protected void onPostExecute(String result) {
dialog.dismiss();
super.onPostExecute(result);
}

}

在Activity的onCreate方法中,

MyAsyncTask task = new MyAsyncTask();
task.execute();

关于android - 即使在加载 View 后,我的 ProgressDialog 也不会关闭。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11185511/

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