這裏面的AsyncTaskArrayIndexOutOfBoundsException異常中的AsyncTask的onProgressUpdate Android中
doInBackground(Void… params){
for(int i=0;i<5;++i){
if(i==4){
threeParams = true;
publishProgress(i+1,i+2,i+3);
try{
Thread.sleep(2000);
}catch(Exception e){}
}else{
publishProgress(i+1,i+2);
try{
Thread.sleep(2000);
}catch(Exception e){}
}
}
onProgressUpdate(Integer… params){
if(threeParams){
tv.setText(params[0] + 「,」 + params[1] + 「,」 + params[2]);
threeParams = false;
}else{
tv.setText(params[0] + 「,」 + params[1]);
}
}
的代碼時,我= 4,onProgressUpdate,我應該得到5,6,7,但它與ArrayIndexOutOfBoundsException異常崩潰。我不知道我做錯了什麼。
那你在PARAMS提供? – Shaishav
只要閱讀這個異常消息(以及將來的問題:通過問題就可以了!)---它會準確地告訴你你的問題是什麼:你想訪問一些索引M ......但是你的數組長度爲N; M> N。假設**數組具有一定的大小總是一個壞主意;沒有檢查! – GhostCat
@GhostCat但我傳遞3個參數給函數。所以我必須收到3個參數,對嗎?如果我們不能認爲那麼我們質疑java本身的可信度! – Nikhil