2013-02-26 30 views
0

在我的android应用程序中,我将一些数据从服务器数据库复制到本地数据库。该代码发布如下。这可能需要15分钟以上。对于较慢的连接,可能会超出。所以我想显示一个等待进度条,应该显示“请稍等”,直到任务完成。我提到很多东西,但是我无法理解如何在下面的代码中使用等待进度条。在android中等待进度条

refresh.setOnClickListener(new OnClickListener(){ 

public void onClick(View v) { 
    mySQLiteAdapter.openToWrite(); 
    mySQLiteAdapter.deleteAll(); 
    radapter.openToWrite(); 
    radapter.deleteAll(); 
    uadapter.openToWrite(); 
    uadapter.deleteAll(); 
      try 
       { 
        HttpClient httpclient = new DefaultHttpClient(); 
        HttpPost httppost = new HttpPost("http://xxxxxxxxxxxxxxxxxxxxx"); 
        HttpResponse response = httpclient.execute(httppost); 
        HttpEntity entity = response.getEntity(); 
         is = entity.getContent(); 
       } catch (UnsupportedEncodingException e) { 
        e.printStackTrace(); 
       } catch (ClientProtocolException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       try { 
        BufferedReader reader = new BufferedReader(new InputStreamReader(
          is, "iso-8859-1"), 8); 
        StringBuilder sb = new StringBuilder(); 
        String line = null; 
        while ((line = reader.readLine()) != null) { 
         sb.append(line + "\n"); 
        } 
        is.close(); 
        json = sb.toString(); 
       } catch (Exception e) { 
       Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show(); 
       } 

       try { 
        jObj = new JSONObject(json); 
        contacts = jObj.getJSONArray("get"); 
        for(int i = 0; i < contacts.length(); i++){ 
        JSONObject c = contacts.getJSONObject(i); 
         if(!c.isNull("rname"))// || c.getString("rcode").equals(null)) 
         { 
          rname = c.getString("rname"); 
          rcode = c.getString("rcode"); 
          radapter.insert(rcode, rname); 
         } 
         else 
         { 
          rname = ""; 
          rcode = c.getString("rcode"); 
          radapter.insert(rcode, rname); 
         } 
        } 
        Toast.makeText(getBaseContext(), " Ryot BackUp completed", Toast.LENGTH_SHORT).show(); 

       } catch (JSONException e) { 
        Toast.makeText(getBaseContext(), "Error"+e.toString(), Toast.LENGTH_LONG).show(); 
       } 
       adapter.deleteAll(); 
       oadapter.deleteAll(); 
       e2.setText("Back Up completed"); 
      } 

     }); 

有人帮助我。在此先感谢

+0

了解水平进度条和线程以相应处理它。 – 2013-02-26 07:02:57

回答

5

使用Progress Dialog显示文本“请稍候...”和下面thread实现代码:

 final ProgressDialog progressDialog = ProgressDialog.show(this, "", "Please wait..."); 
     new Thread() { 
      public void run() { 
       try{ 
         //your code here..... 
        } 
       catch (Exception e) { 
        Log.e("tag", e.getMessage()); 
        } 
       // dismiss the progress dialog 
         progressDialog.dismiss(); 
        } 
       }.start(); 
+0

是啊!我需要。谢谢。我现在检查 – 2013-02-26 07:05:57

+0

将progressDialog放在OnClickListener的外面 – 2013-02-26 07:15:40

+0

我试过我的活动name.this而不是这个。现在我解决了错误并尝试运行我的应用程序 – 2013-02-26 07:16:53

1

尝试使用的AsyncTask,并使用更新onProgressUpdate方法