無限遞迴導致StackOverflowError
/**
* Created by wangke on 2017-07-20.
* 上傳檔案到七牛雲的工具類
*/
public class UpLoadHelper {
private static final String accessKey = "KXLzuFCOxgNar5whqU3-0bmrH6rTHOqaidcohRes1";
private static final String secretKey = "aiw1aAh-dwA9k6nkWAQLExy2Taz9cE1nFYA_01WY1";
private CompletionListener mCompletionListener = null;
/**
* 上傳頭像
*
* @param path
*/
public void upLoadAveter(String path, String key, CompletionListener completionListener) {
this.mCompletionListener = completionListener;
Auth auth = Auth.create(accessKey, secretKey);
//上傳憑證
String uploadToken = auth.uploadToken("kangyuanmilk", "/aveter");
UploadManager uploadManager = UpLoadManagerFactory.getInstance();
uploadManager.put(path, key, uploadToken, new UpCompletionHandler() {
//上傳進度的回撥
@Override
public void complete(String key, ResponseInfo info, JSONObject response) {
if (mCompletionListener != null) {
complete(key, info, response);
}
}
}, null);
}
public interface CompletionListener {
public void complete(String key, ResponseInfo info, JSONObject response);
}
}
在使用uploadManager.put方法上傳圖片的時候需要新增一個回撥來通知當前上傳檔案的進度等資訊,為了簡化上傳程式碼於是稍微封裝了一下,因為涉及到了一個回撥所以就寫了一個介面用於將當前的上傳狀態通知外界,不幸的是我自己寫的那個回撥方法與uploadManager.put方法中的回撥方法的命名是相同的,這也就導致了後面在呼叫的時候就變成了遞迴呼叫,一直到後面棧溢位。
報錯資訊:
07-20 16:03:00.224 7475-7475/com.merpyzf.kangyuanmilk E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.merpyzf.kangyuanmilk, PID: 7475
java.lang.StackOverflowError: stack size 8MB
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2558/viewspace-2799249/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ThinkPHP 無限遞迴PHP遞迴
- php 無限分類遞迴 和 無限分類引入 的效能差距PHP遞迴
- 無限for迴圈(死迴圈)
- 使用遞迴實現樹狀選單(無限級分類)遞迴
- 哪位大師能用匿名遞迴下這個無限極分類?遞迴
- iview Tree資料格式問題,無限遞迴樹處理資料View遞迴
- 分層資料 Hierarchical Data 探索 (1.遞迴) 無限極分類遞迴
- 週而復始,往復迴圈,遞迴、尾遞迴演算法與無限極層級結構的探究和使用(Golang1.18)遞迴演算法Golang
- ThinkPHP 無線遞迴分類PHP遞迴
- StackOverflowError是無法捕獲的Error
- 不用遞推實現無限極分類
- 遞迴和尾遞迴遞迴
- 『無為則無心』Python函式 — 32、遞迴Python函式遞迴
- 檢測到您模板中包含檔案超過50個,請檢查是否存在互相包含導致無限迴圈的情況!
- android可以無限迴圈滑動的ViewPagerAndroidViewpager
- shell語句無限迴圈小常識
- 快速排序【遞迴】【非遞迴】排序遞迴
- 原生js系列之無限迴圈輪播元件JS元件
- 自研ORM Include拆分查詢(遞迴演算法 支援無限層級) 效能最佳化探討ORM遞迴演算法
- 遞迴遞迴
- wpf popup導致MouseLeftButtonUp無法觸發
- 什麼是遞迴?遞迴和迴圈的異同遞迴
- 迴圈引用導致的json序列化失敗JSON
- 理解 vue-router的beforeEach無限迴圈的問題Vue
- AirDrop無限迴圈攻擊,你的iPhone還好嗎?AIiPhone
- go 遞迴Go遞迴
- JavaScript遞迴JavaScript遞迴
- 分而治之-遞迴遞迴
- 理解遞迴遞迴
- MySQL時區導致無法產生表MySql
- 遍歷二叉樹-------遞迴&非遞迴二叉樹遞迴
- C++ 遞迴與物件導向程式設計基礎C++遞迴物件程式設計
- 遞迴元件組合拳,無懼頁面巢狀遞迴元件巢狀
- 數列遞推形式的極限&正定,負定,不定與形式導數
- 直播系統app原始碼,垂直,水平無限迴圈滑動APP原始碼
- 遞迴和遞推總結遞迴
- ARC下的block導致的迴圈引用問題解析BloC
- 演算法小專欄:遞迴與尾遞迴演算法遞迴