我有一個類中調用下載該擴展的AsyncTask。 的OnPreExecute方法執行以下操作:奇怪的行爲的AsyncTask
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
this.dialog.setTitle("Check updates...");
this.dialog.show();
}
列出的對話框instantied在類的構造函數,並具有以下特點酒色:
dialog = new ProgressDialog(activity);
dialog.setCancelable(false);
在doInBackground方法,我會做很多的網絡操作,我會每次我可以從期望的url下載圖像時調用進度更新方法:
protected void onProgressUpdate(String... values)
// TODO Auto-generated method stub
super.onProgressUpdate(values);
//call the onprogress update
publishProgress("1000");
//do a lot of stuff with the network
}
In t所以基本上
protected void onProgressUpdate(String... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
if(values[0].equals("1000")){
dialog.dismiss();
progress_brand.show();
progress_brand.setProgress(progress_brand.getProgress()+1);
if(progress_brand.getProgress() == progress_brand.getMax()){
progress_brand.dismiss();
}
}
}
:他onprogressupdate我會解僱創建的第一個對話,我會告訴另外一個在的AsyncTask開始我展示了標題爲「檢查更新」對話框...然後我會尋找在doInBackground方法這些更新,如果我會找到一些,我將使用發佈進度駁回「老對話」,並創建一個新的與ProgressDialog.STYLE_HORIZONTAL。最後一個對話框每次我都會從網上下載。
所以這裏的問題。如果我用eclipse運行應用程序,然後在下載過程中,我會暫停應用程序一切工作正常。如果我第二次重新輸入應用程序,我可以看到下載繼續完美,我可以看到第二個進度欄繼續按預期進行更新。
但是,如果我做一個簽名的apk - >通過APK安裝應用程序 - >啓動應用程序 - >把它放在暫停下載過程 - >重新進入應用程序,那麼第一個對話框再次顯示,下載無法正常進行。 我從logcat中看到,如果我將從eclipse運行應用程序,onpreexecute方法僅被調用一次,即使我將退出並重新輸入應用程序。 但是,如果我會通過APK的onpreexecute方法被調用每次我會退出,然後再安裝應用程序重新啓動應用程序。
這是爲什麼發生?我試圖清理項目和其他基本操作,看看問題是否是該apk的創建,但沒有結果。
您可能想要顯示(或解釋)從哪裏開始下載任務。 – Luksprog
請記住,每當您重新進入應用程序時,都會創建該活動,因此onResume方法將被調用,您在哪裏放置了asyncktask.start方法? – vsm
我從項目的主要活動(oncreate方法)開始下載任務:if(isOnline()){ \t \t final下載d = new Download(this,this.getApplicationContext()); \t \t d.execute(「」); \t \t} – jiraya85