这里面的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