我对Android比较新,但在过去的一年中已经制作了很多应用程序,所以请原谅我。
我知道当您在设备上运行应用程序并通过旋转设备更改屏幕方向时,正在显示的活动将被完全重新创建。我打开YouTube应用程序(我正在使用Nexus 7 w/ Android 4.2.2)并播放一些视频,然后翻转屏幕以更改方向。视频继续播放,一切都会相应地重新调整大小......如果活动被完全重新创建,那么这是如何实现的?
谢谢。
我对Android比较新,但在过去的一年中已经制作了很多应用程序,所以请原谅我。
我知道当您在设备上运行应用程序并通过旋转设备更改屏幕方向时,正在显示的活动将被完全重新创建。我打开YouTube应用程序(我正在使用Nexus 7 w/ Android 4.2.2)并播放一些视频,然后翻转屏幕以更改方向。视频继续播放,一切都会相应地重新调整大小......如果活动被完全重新创建,那么这是如何实现的?
谢谢。
在你的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更改,因为"Activity被设计为被销毁。"。
http://developer.android.com/training/basics/activity-lifecycle/index.html
如果您担心在活动中丢失本地变量的值... 您可以为其中一些变量使用单例模式。这不是一个完美的解决方案,但可能有效。