Hier ist der Code innerhalb AsyncTaskArrayIndexOutOfBoundsException in onProgressUpdate von AsyncTask in 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]);
}
}
Wenn i = 4, onProgressUpdate, ich soll 5,6,7 bekommen, aber es stürzt mit ArrayIndexOutOfBoundsException. Ich habe keine Ahnung, was ich falsch mache.
Was haben Sie in params? – Shaishav
Lesen Sie einfach diese Ausnahme Nachricht (und für die Zukunft: Vergangenheit mit Ihren Fragen!) --- es genau sagt Ihnen, was Ihr Problem ist: Sie wollen einige Index M zugreifen ... aber Ihr Array hat Länge N; mit M> N. Es ist immer eine schlechte Idee, ** anzunehmen, dass ein Array eine bestimmte Größe hat; ohne das zu überprüfen! – GhostCat
@GhostCat aber ich übergebe 3 Parameter an die Funktion. Also muss ich auch 3 Parameter erhalten, oder? Wenn wir das nicht annehmen können, dann stellen wir die Glaubwürdigkeit von Java selbst in Frage! – Nikhil