在Android Intent中显示“正在加载:进度条”直到数据加载

时间:2011-12-02 22:08:19

标签: android

我正在开发一个Android应用程序,在该应用程序中我有intent2,在点击时重定向到intent3并花费一些时间然后加载一个表并将服务器数据显示在其中。

有时候如果有很多数据,那么获取dataload就会花费很多时间,并且显示时间空白屏幕会增加。

我希望显示一个加载栏,直到数据加载。

如果只显示数据,我怎么能显示ProgrssBar?

2 个答案:

答案 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