gpt4 book ai didi

android - 进程中间的进度对话框卡住

转载 作者:太空狗 更新时间:2023-10-29 15:42:19 30 4
gpt4 key购买 nike

我试图在进程运行时显示进度对话框,然后在进程完成后关闭。但是对话框在该过程完成之前卡住。我需要在我的代码中添加什么?

这是我的代码:

final ProgressDialog dialog = ProgressDialog.show(this, "","Loading..Wait.." , true);
switch (th.getCurrentTab()) {
case 0:
dialog.show();
Handler menHanlder = new Handler();
menHanlder.postDelayed(new Runnable() {
public void run() {
for(int i = 0; i < menLV.getCount(); i++)
{
if(menBooleanArray.get(i) == true)
{
selectedFromMenList.add(menLV.getItemAtPosition(i).toString());
}
}
handler.setItemListData(WardrobeActivity.this, "Wardrobe", selectedFromMenList, "Name" , "Men" , "Type");
displayView();
drawer.closeMenu();
refreshTabWidget();
selectedFromMenList.clear();
dialog.dismiss();
}
}, 3000);
break;

我使用对话框的方法不好吗?

任何意见将不胜感激。

最佳答案

您的进度条在中间卡住,因为您正在 UI 线程上处理繁重的任务,而在 Android 中,您不应该在 UI 线程上处理繁重的任务,而是可以使用 AsyncTask 作为此目的如下:

public class MyTask extends AsyncTask<Void, Integer, Void>{


@Override
protected void onPreExecute() {
//Show progress Dialog here

}


@Override
protected void onPostExecute(Voidresult) {
//Update UI here if needed
//Dismiss Progress Dialog here
}

@Override
protected String doInBackground(Void... params) {
//Do you heavy task here

}

}

AsyncTask 经历了 4 个步骤

onPreExecute() 在任务执行后立即在 UI 线程上调用。

doInBackground(Param ...)onPreExecute() 完成执行后立即在后台线程上调用。

onProgressUpdate(Progress...) 在调用 publishProgress(Progress...) 后在 UI 线程上调用。

onPostExecute(Result) 在后台计算完成后在 UI 线程上调用。

并按如下方式启动AsyncTask:

 new MyTask().execute();

关于android - 进程中间的进度对话框卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15215126/

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