這是什麼意思,「如果程序員處理配置 變化」 .Does這意味着,如果以編程方式我們正在改變設備的 方向,那麼這些方法將不會被調用?
這意味着您作爲程序員必須手動設置配置更改時發生的情況。這個方法將被調用。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
所以,你處理如果方向和其他配置改變會發生什麼。
但是,如果我們通過調用完成整理我們的活動中的onCreate()方法 隨後的onDestroy()被直接調用,並在onPause,的onStop不 調用。
如果要通過調用finish來顯式銷燬活動,則應該重寫onDestroy方法並進行清理。我們正在討論如果您的應用在運行時發生變化(即發生電話呼叫,輪換髮生變化等),會發生什麼情況。
您是否測試過調用'finish()'時是否調用onPause()'?我的理解是,它將永遠被稱爲除崩潰 – PPartisan
@PPartisan如果我們正在完成onCreate內的活動,那麼它不會被調用.. http://stackoverflow.com/questions/28777449/android-is-onpause-保證將被稱爲後處理 –
每天學習新東西:)。也就是說,在'onCreate()'中調用'finish()'是一個確定的邊緣情況。在你提供的鏈接中的答案足以解釋爲什麼在這種情況下不調用onPause(),而是onDestroy()是 - 它是Android活動中生命週期對稱的一部分,而onDestroy()是爲了因爲如果我們在onConfigurationChanged方法上實現onPause()並且onSaveInstance()在配置更改期間沒有被調用,onCreate()會將'onPreate()'設置爲onResume()'onResume()' – PPartisan