我有一個應用程序,當用戶登錄時,將從服務器下載一些數據並將它們存儲在本地數據庫中。從服務器下載數據時設置progressBar
問題是我想在下載過程中顯示一個進度條,因爲它需要很長時間,並且應用程序似乎是阻止的,即使有些事情需要修改,用戶也不會看到它。
此外,如何使這個進度,£我看過一些exemples一個新的線程(asynchronus任務,但問題是,我不知道如何使用它們。
謝謝您的幫助。
我有一個應用程序,當用戶登錄時,將從服務器下載一些數據並將它們存儲在本地數據庫中。從服務器下載數據時設置progressBar
問題是我想在下載過程中顯示一個進度條,因爲它需要很長時間,並且應用程序似乎是阻止的,即使有些事情需要修改,用戶也不會看到它。
此外,如何使這個進度,£我看過一些exemples一個新的線程(asynchronus任務,但問題是,我不知道如何使用它們。
謝謝您的幫助。
這是一個示例代碼集
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);
}
}
謝謝@Anuja,但在哪裏放置我下載的數據代碼和進度條? – 2012-02-17 14:19:42
請看現在代碼正在工作@Anuja忘了放一些代碼.. – 2012-02-17 14:53:35
@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
看吧: http://stackoverflow.com/questions/3028306/download-a-file-with-android-and-showing-the- progress-in-a-progressdialog – Thommy 2012-02-17 13:55:16
這會幫助你。 /stackoverflow.com/a/9175226/1147434 – Sniper 2012-02-17 13:58:35
我會嘗試這些方法。 謝謝 – 2012-02-17 14:49:35