2012-02-17 52 views
3

我有一个应用程序,当用户登录时,将从服务器下载一些数据并将它们存储在本地数据库中。从服务器下载数据时设置progressBar

问题是我想在下载过程中显示一个进度条,因为它需要很长时间,并且应用程序似乎是阻止的,即使有些事情需要修改,用户也不会看到它。

此外,如何使这个进度,£我看过一些exemples一个新的线程(asynchronus任务,但问题是,我不知道如何使用它们。

谢谢您的帮助。

+0

看吧: http://stackoverflow.com/questions/3028306/download-a-file-with-android-and-showing-the- progress-in-a-progressdialog – Thommy 2012-02-17 13:55:16

+0

这会帮助你。 /stackoverflow.com/a/9175226/1147434 – Sniper 2012-02-17 13:58:35

+0

我会尝试这些方法。 谢谢 – 2012-02-17 14:49:35

回答

1

这是一个示例代码集

public class HttpActivity extends Activity implements OnClickListener 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    ... 
} 
public void onClick(View v) { 
    if(v.getId() == R.id.signin_get_button){ 
     ... 
     signInGet(givenUsername, givenPassword); 
    }  
} 
private void signInGet(String username, String password){ 

    class HttpGetAsycTask extends AsyncTask<String, Void, String>{ 

     private ProgressDialog dialog = ProgressDialog(HttpActivity.this, "Sign In", "Communicating with the server", true); 

     @Override 
     protected String doInBackground(String... params) { 
      //Do your downloading Here...... 
     } 

     @Override 
     protected void onPostExecute(String result) { 
      super.onPostExecute(result); 
      dialog.dismiss(); 
      ... 
     } 
@Override 
     protected void onPreExecute(String result) { 
      super.onPreExecute(result); 
      dialog.show(); 
      ... 
     } 
    } 

    HttpGetAsycTask httpGetAsycTask = new HttpGetAsycTask(); 
    httpGetAsycTask.doInBackground(username, password); 
} 
} 
+0

谢谢@Anuja,但在哪里放置我下载的数据代码和进度条? – 2012-02-17 14:19:42

+0

请看现在代码正在工作@Anuja忘了放一些代码.. – 2012-02-17 14:53:35

+0

@Ana你把你的下载数据放在doInBackground方法中。正如你在我的示例代码中看到的,当我们调用这个内部类时,ProgressDialog就开始了。您可以在下载完成后关闭ProgressDiolog,这意味着在onPostExecute方法中。使用AsyncTask与服务器连接的示例代码在这里(http://anujarosha.wordpress.com/2012/01/27/handling-http-post-method-in-android/) – AnujAroshA 2012-02-17 14:56:53