android中的进度条与线程

时间:2011-08-16 07:42:03

标签: android

我构建了一个应用程序,其中,我可以从服务器获取数据,所以我只想在其上放置进度条,但我不能给出具体的持续时间。从服务器获取整个数据时,它是随机解散的。所以你能告诉我怎么办?

你能给出一个简单的例子吗

4 个答案:

答案 0 :(得分:1)

您可以使用这些http://developer.android.com/reference/android/widget/ProgressBar.html示例,但最好与异步任务Example of async task集成,因为您不知道只需使用onPostExecute关闭进度需要多长时间。  希望它有所帮助

答案 1 :(得分:1)

您需要将AsynTaskindeterminate ProgressDialog组合在一起。像这样:

private class DownloadTask extends AsyncTask<...> {

 private ProgressDialog progressBar;

 protected void onPreExecute() {
     progressBar = ...;
     progressBar.show();
 }

 protected Long doInBackground() {
     // blah blah
 }

 protected void onPostExecute() {
     progressBar.dismiss();
 }
}

如果用户想要取消进度,请不要忘记处理。

答案 2 :(得分:1)

你可以使用AsyncTask

private class Myclass extends AsyncTask<Void, Integer, Void> {

 ProgressDialog pDialog;

@Override
 protected void onPreExecute() {
     pDialog= ProgressDialog.show(context, "", "loading...");
     pDialog.show();
super.onPreExecute();
 }

@Override
 protected Long doInBackground(Void... unused) {
     // your code here
return null;
 }

@Override
 protected void onPostExecute(Void unused) {
     pDialog.dismiss();
 }
}

答案 3 :(得分:1)

 @Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.event_detail);

    pd = ProgressDialog.show(this, "Please Wait", "Loading ....", true,true);
    Thread thread = new Thread(this);  //Implment Runnable;
    thread.start();
    //      setData();
}

@Override
public void run() 
{
    //Do your all work except User Interface Updation
    han.sendEmptyMessage(0);

}
private Handler han=new Handler()
{

    @Override
    public void handleMessage(Message msg) 
    {
    dismiss dialog  
    }

};