我有一个应用程序,当用户登录时,将从服务器下载一些数据并将它们存储在本地数据库中。
问题是,我想在下载过程中显示一个进度条,因为它需要很长的时间,而且应用程序似乎被阻塞了,即使有些东西损坏了,用户也看不到它。
另外,我读了一些新线程的例子(异步任务,但问题是我不知道如何使用它们)。
谢谢你的帮助。
最佳答案
这是一个示例代码集。
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);
}
}