1
我想要的this.dispose();
同樣的效果沒有得到StackOverflow上的錯誤。我怎樣才能輕鬆處理所有變量(我有〜100)?我想刪除當前屏幕並切換屏幕,如果我切換回來,就好像舊屏幕從未存在過。我一直在試圖爲當前屏幕的配置,並在dispose()
方法迄今手工處置各種方法似乎是最好的選擇。重置變量libgdx
我想要的this.dispose();
同樣的效果沒有得到StackOverflow上的錯誤。我怎樣才能輕鬆處理所有變量(我有〜100)?我想刪除當前屏幕並切換屏幕,如果我切換回來,就好像舊屏幕從未存在過。我一直在試圖爲當前屏幕的配置,並在dispose()
方法迄今手工處置各種方法似乎是最好的選擇。重置變量libgdx
在大多數情況下,手動處理Screen
的dispose()
方法是因爲對於大多數資源而言,它是最早可能的最新時間點。有時,如果你知道你會不會改變Screen
你也可以之前已經做之前需要的東西了,但是這應該只是一個特例。
至於你的StackOverflow的錯誤:這是不是因爲你有很多的變數,但因爲似乎是任何一種你的資源,你要丟棄之間的循環依賴。它可以是隻有兩個資源,兩個輪流都是dispose()
。舉個例子:
Class A {
private B b;
public void dispose() {
b.dispose();
}
}
Class B {
private A a;
public void dispose() {
a.dispose();
}
}
只要你撥打這兩個資源之一dispose()
,你會因爲你的函數調用堆棧是有限的命中無限循環,並最終出現StackOverflow。
這可能也有可能不止兩個資源,可能會有另一個類C,並且您可能有一個圈如A→B→C→A。