如果有任何靜態變量被銷燬,它們全部被銷燬了嗎?這是我在我的OnCreate
方法的代碼:如果有任何靜態變量被銷燬,它們全部被銷燬了嗎?
if (!LoadedData)
{
LoadedData = true;
SaveData = getSharedPreferences(FILENAME, MODE_PRIVATE);
LoadData();
if (MainActivity.ScreenWidth == 0 && MainActivity.ScreenWidthLandscape == 0)
MainActivity.LoadData();
}
第一次我的班運行,LoadedData將有假的默認值,造成保存在加載和保存在靜態變量的任何值。設備旋轉後,此代碼將不會運行,因爲所有需要的值都保存在靜態變量中,所以再次加載它們效率不高。問題是,如果一些靜態變量被破壞,但不是全部,那麼我的程序可能會崩潰。當靜態變量被銷燬時,它們是否會保存默認值?例如integer = 0,boolean = false等。
我無法測試被銷燬的靜態變量。
完美!我的代碼會正常工作,因爲'LoadData()'只加載當前類的靜態變量,並且當'MainActivity'中的靜態變量被銷燬時,這將返回true:if(MainActivity.ScreenWidth == 0 && MainActivity.ScreenWidthLandscape == 0)'。我只需要將該檢查移至此行之前:'if(!LoadedData)'。謝謝你的幫助 –