我構建了一個應用程序,其中,我可以從服務器獲取數據,因此我只想在其上放置進度條,但無法給出具體的持續時間。它在從服務器獲取整個數據時被隨機取消。所以你能告訴我我該怎麼做?Android中的線程進度條
可以給人以闡述
我構建了一個應用程序,其中,我可以從服務器獲取數據,因此我只想在其上放置進度條,但無法給出具體的持續時間。它在從服務器獲取整個數據時被隨機取消。所以你能告訴我我該怎麼做?Android中的線程進度條
可以給人以闡述
@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
}
};
一個簡單的例子,你可以使用這些http://developer.android.com/reference/android/widget/ProgressBar.html樣本,但它更好地與異步任務Example of async task整合,因爲你不知道需要多長時間只使用onPostExecute
關閉進展。 希望它有幫助
你需要的是結合AsynTask
和indeterminate 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();
}
}
如果用戶想要取消進度,請不要忘記處理。
U可以使用的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();
}
}
你爲什麼不使用加載與圓GIF啄呢?不知道需要多長時間才能獲得進度條 – Reno