2017-08-14 14 views

回答

1

根據android文檔,當屏幕旋轉時,Android重新啓動正在運行的Activity(調用onDestroy(),然後是onCreate())。重新啓動行爲旨在通過使用與新設備配置相匹配的備用資源自動重新加載應用程序來幫助您的應用程序適應新的配置。

所以是的java代碼也重新加載方向更改。

要正確處理重新啓動,重要的是您的活動通過正常的Activity生命週期恢復其以前的狀態,在生命週期中Android會在銷燬活動之前調用onSaveInstanceState(),以便保存有關應用程序狀態的數據。然後可以在onCreate()或onRestoreInstanceState()期間恢復狀態。

0

當屏幕面向你將失去的數據,因爲這樣你就不得不保存數據使用它會創造一個全新的活動的onSaveInstanceState

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 

    // Save UI state changes to the savedInstanceState. 

    savedInstanceState.putString("MyString", "Welcome back to Android"); 

    // etc. 

    super.onSaveInstanceState(savedInstanceState); 
} 

//onRestoreInstanceState 

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) { 

    super.onRestoreInstanceState(savedInstanceState); 

    // This bundle has also been passed to onCreate. 

    String myString = savedInstanceState.getString("MyString"); 
} 
0

我假設你用Java代碼的意思被重新加載是其中的onCreate和在恢復方法被稱爲一個旋轉,答案是肯定的,也可以使用savedInstancestate實例來保存旋轉過程中的數據

0

是的,基本上,當您將方向更改爲橫向或縱向時,MainActivity的OnCreate方法將再次被調用。包括初始化主類在內的所有事情都發生在這裏。這是Android的行爲,同時改變移動設備的方向。

相關問題