我正在开发一个Android应用程序,在该应用程序中我有intent2,在点击时重定向到intent3并花费一些时间然后加载一个表并将服务器数据显示在其中。
有时候如果有很多数据,那么获取dataload就会花费很多时间,并且显示时间空白屏幕会增加。
我希望显示一个加载栏,直到数据加载。
如果只显示数据,我怎么能显示ProgrssBar?
答案 0 :(得分:2)
可能你最好的选择是在你的“intent3”中使用AsyncTask:
你可以这样做:
private class performBackgroundTask extends AsyncTask <Void, Void, Void>
{
private ProgressDialog Dialog = new ProgressDialog(ClassName.this);
protected void onPreExecute()
{
Dialog.setMessage("Please wait...");
Dialog.show();
}
protected void onPostExecute(Void unused)
{
try
{
if(Dialog.isShowing())
{
Dialog.dismiss();
}
// do your Display and data setting operation here
}
catch(Exception e)
{
}
@Override
protected Void doInBackground(Void... params)
{
// Do your background data fetching here
return null;
}
}
答案 1 :(得分:0)
当您打开新活动时,您可能需要在onCreate上运行AsyncTask,asynctask的结构将是这样的(取自google doc),请注意,如果您想增加进度条你必须实现onProgressUpdate并在doInBackground方法中调用publishProgress
private class DownloadFilesTask extends AsyncTask<Void, Integer, Void> {
protected void onPreExecute()
{
// show your progress bar
}
protected Void doInBackground(Void... params) {
// do your work and publish the progress
publishProgress(progress);
}
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(Void result) {
//dismiss your progress bar
}
}
这段代码只是一个例子,当然你需要让它适应你的逻辑/代码。
查看这个简单而完整的example