我得到了下面的錯誤代碼。這裏的問題是線程即使在退出「for」循環後仍在運行。我所做的只是點擊一個按鈕,我將一堆文件上傳到雲端。 ListofDocs[]
是我存儲我想要上傳的文件列表的地方。任何幫助表示讚賞。 TIA。索引超出界限在android中的異常
11-03 21:23:27.793: E/AndroidRuntime(24480): FATAL EXCEPTION: Thread-11897
11-03 21:23:27.793: E/AndroidRuntime(24480): java.lang.ArrayIndexOutOfBoundsException: length=12; index=12
11-03 21:23:27.793: E/AndroidRuntime(24480): at com.projects.scloud.PicsList$1$1.run(PicsList.java:99)
11-03 21:23:27.793: E/AndroidRuntime(24480): at java.lang.Thread.run(Thread.java:856)
for(i=0; i < ListofDocs.length; i++) {
Log.i("Value of i: ", String.valueOf(i));
MessageText.setText("Upload Documents");
/************* Php script path ****************/
upLoadServerUri = "http://www.androidexample.com/media/UploadToServer.php";
Backup.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog = ProgressDialog.show(DocsList.this, "", "Uploading file...", true);
new Thread(new Runnable() {
public void run() {
runOnUiThread(new Runnable() {
public void run() {
MessageText.setText("uploading started.....");
}
});
uploadFile(ListofDocs[i]);
}
}).start();
}
});
}
一個線程將運行,直到它完成或取消。這是一個單獨的對象。爲什麼你希望線程在for循環結束之前完成?也就是說,你的代碼是完全錯誤的。你想做什麼? – Simon
你很多次將不同的動態onclicnlistener設置爲一個控件(Button?)。這對我沒有意義。如果您的代碼正常工作,您將只能上傳列表中的最後一個文件。 – nio
如果您正在做一次即忘即上的上傳(因爲它看起來像是在做),您應該使用一項服務,這樣您就不會被綁定到文件上傳時需要存在的活動 –