我对 Android 比较陌生,但在过去一年中制作了很多应用程序,所以请原谅我。
我知道,当您在设备上运行应用程序并通过转动设备来更改屏幕方向时,显示的活动将完全重新创建。我去 youtube 应用程序(我使用的是带有 Android 4.2.2 的 Nexus 7)并播放一些视频,然后翻转屏幕以改变方向。视频继续播放,所有内容都相应地重新调整大小......如果完全重新创建活动,这怎么可能?
谢谢你。
我对 Android 比较陌生,但在过去一年中制作了很多应用程序,所以请原谅我。
我知道,当您在设备上运行应用程序并通过转动设备来更改屏幕方向时,显示的活动将完全重新创建。我去 youtube 应用程序(我使用的是带有 Android 4.2.2 的 Nexus 7)并播放一些视频,然后翻转屏幕以改变方向。视频继续播放,所有内容都相应地重新调整大小......如果完全重新创建活动,这怎么可能?
谢谢你。
在您的 AndroidManifest.xml 添加 android:configChanges ,这将避免在方向更改时重新创建活动。我希望您的横向和纵向模式具有相同的布局。
<activity android:label="Your Activity Name"
android:configChanges="keyboardHidden|orientation|screenSize"
android:name="com.yourpackage">
要对此添加更多内容,我建议您查看onPause()
和onResume()
方法,如果您正在使用 Fragments,请注意onSaveInstanceState
,onRetainInstanceState
而不是应用 xml 更改,因为“活动被设计破坏了。 ”
http://developer.android.com/training/basics/activity-lifecycle/index.html
如果您担心在活动中丢失局部变量的值......您可以对其中一些变量使用单例模式。这不是一个漂亮的解决方案,但可以工作。