2011-08-21 37 views
1

我有一個簡單的WebView應用程序,需要一些時間加載時,我改變方向。爲了優化,我希望瞭解更改方向時涉及的過程。我添加了虛擬活動生命週期方法,使用Log.d方法將文本發送到logcat。但是,當我改變方向時,我看不到任何這些方法。我如何查看方法/步驟中的方向更改android

我做了一些挖掘,顯然我也可以通過使用onConfigurationChanged覆蓋方向配置的行爲,我使用一些logcat語句編碼onConfigurationChanged方法,但程序似乎也沒有經過此方法。

你能告訴我如何查看配置更改中涉及的方法,以便我可以優化我的代碼。根據此「article」配置更改應導致調用onDestroy,然後onCreate。我不能看到onDestroy方法執行,而是程序停止在onStop,似乎沒有進一步進行。

我檢查了logcat,每次我改變方向WindowManager其次是ActivityManager被解僱。

你能告訴我如何查看過渡?有什麼設置我需要設置某個地方?

+0

你把你的'Log'行放在哪裏? – Phil

回答

0

您是否已將android:configChanges添加到清單文件中?
Here只有在清單文件中有android:configChanges="orientation"時,纔會調用文檔onConfigurationChanged。否則,Android本身將處理所有配置更改。

1

Android寶貝, 嘗試添加OnPause和OnResume重寫方法,並將斷點添加到這些方法。他們肯定會被要求改變方向。

+0

感謝alhehe回覆, –

+1

感謝回覆的傢伙, 我發現我沒有overriddenshouldoverrideurlloading方法,因此它是擊發瀏覽器。因此,我的程序停止在onStop方法。 –

0

如果你指的是文章中所描述的,你已經把下面一行在你的清單:

android:configChanges="orientation|keyboardHidden" 

那麼你的活動將不會被執行的onPause /停止/銷燬,因爲在一個方向上完成然後在另一個重新啓動,運行onCreate/Start/Resume。

這是因爲您已經告訴應用程序,您將在插入該行時自行處理方向更改。如果您爲onConfigurationChanged(..)編寫覆蓋,那麼它將通過該代碼運行。

+0

感謝您的回覆, –

+0

感謝所有回覆。 我發現了問題所在。我沒有添加webviewclient來覆蓋shouldOverrideUrlLoading,這導致瀏覽器應用程序被啓動,結果我的程序在onStop方法中。 –