2011-08-21 36 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方法中。 –