gpt4 book ai didi

android - 在后台从 Internet 获取数据并显示 ProgressDialog 或 ProgressBar

转载 作者:太空狗 更新时间:2023-10-29 12:58:52 27 4
gpt4 key购买 nike

我正在开发一个需要访问网站的应用程序数据,并将在设备上显示该数据。我想从中获取数据后台 Internet 并显示 ProgressDialog 或 ProgressBar设备以及应用程序何时收到来自服务器应用程序的响应关闭对话框或栏并显示数据。

为此,我正在使用 AsyncTask -

AsyncTask的代码如下--

ServerTask extends AsyncTask {
@Override
protected void onPreExecute() {
dialogAccessingServer = new ProgressDialog(ctx);
dialogAccessingServer.setMessage(shownOnProgressDialog);
dialogAccessingSpurstone.show();
}

@Override
protected ServerResponse doInBackground(String... urlArray) {

String urlString = urlArray[0];
HttpResponse serverResponseObject = null;

//finding HttpResponse

return serverResponseObject;

}//end of doInBackground

@Override
protected void onPostExecute(HttpResponse serverResponseObject){
dialogAccessingSpurstone.dismiss();

}

}

并按如下方式调用此代码--

ServerTask serverTaskObject = new ServerTask();
serverTaskObject.execute();
HttpResponse response = serverTaskObject.get();

//对响应执行操作

但未显示 ProgressDialog。(我猜这是因为线程不完整,只有当线程有完成)。

我的问题 --1-如果我的猜测是正确的?如果是那么我应该如何实现它?2-是否还有其他更好的方法来做到这一点?

谢谢

最佳答案

以下是在后台执行任务时显示 ProgressDialog 的模板代码:

class GetTask extends AsyncTask<Object, Void, String>
{
Context mContext;
ProgressDialog mDialog = null;

GetPhotoFeedTask(Context context)
{
mContext = context;
}

@Override
protected void onPreExecute()
{
super.onPreExecute();

mDialog = new ProgressDialog(mContext);
mDialog.setMessage("Please wait...");
mDialog.show();
}
@Override
protected String doInBackground(Object... params)
{
// do stuff in background : fetch response
}

@Override
protected void onPostExecute(String result)
{
super.onPostExecute(result);
setProgressBarIndeterminateVisibility(false);
// mDialog.dismiss();
}
}

然后您使用 new GetTask(this).execute() 语句从您的 Activity 中调用它;

注意:请注意,在显示 ProgressDialog 时,如果用户切换方向或引发随后发生的事件,代码可能会中断。建议在这种情况下使用托管对话框。

关于android - 在后台从 Internet 获取数据并显示 ProgressDialog 或 ProgressBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2109600/

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