-
关于屏幕旋转,会重新onCreate()的问题。25
关于屏幕旋转, 貌似转了后会调用 Activity的onDestory,然后重新创建一个Activity调用onCreate的。 不知道真机怎么样?
难道要保持屏幕上次的样子,需要自己程序记录下当前屏幕状态吗?
比如我在View上Draw了很多东西了, 转一下重新onCreate就啥都没有了??2009年6月05日 09:44
2个答案 按时间排序 按投票排序
-
你要么重新绘制layout, 在这里保存状态:
@Override public Object onRetainNonConfigurationInstance() { final LoadedPhoto[] list = new LoadedPhoto[numberOfPhotos]; keepPhotos(list); return list; }
然后onCreate里面导入保存的状态:final Object data = getLastNonConfigurationInstance(); // The activity is starting for the first time, load the photos from Flickr if (data == null) { mTask = new GetPhotoListTask().execute(mCurrentPage); } else { // The activity was destroyed/created automatically, populate the grid // of photos with the images loaded by the previous activity final LoadedPhoto[] photos = (LoadedPhoto[]) data; for (LoadedPhoto photo : photos) { addPhoto(photo); } }
要么在onConfigurationChange那里表明不要强制重新create.
2009年6月11日 04:52
相关推荐
### Android中手动处理屏幕旋转问题 #### 背景与挑战 在Android应用程序开发过程中,开发者经常面临的一个问题是屏幕旋转导致的应用性能下降。当设备从竖屏切换至横屏(或者相反),系统默认行为是销毁当前...
当屏幕旋转时,Android系统会销毁当前的Activity并重新创建,因此如果你的Activity保存了状态(比如用户输入的信息),你可能需要处理配置变更。有两种方法可以做到这一点:一是使用`onSaveInstanceState()`和`...
6. **数据持久化**:屏幕旋转会导致Activity重建,因此需要在`onSaveInstanceState(Bundle outState)`方法中保存重要数据,并在`onCreate(Bundle savedInstanceState)`或`onRestoreInstanceState(Bundle ...
- 不处理配置变化可能会导致性能问题,因为每次屏幕旋转都会重新加载Activity及其所有视图和数据。 7. **适配多屏幕**: 良好的屏幕适配策略包括使用布局资源目录(如`layout-land`用于横屏,`layout-port`用于竖...
当屏幕旋转时,Android默认的行为是销毁当前的Activity并重建一个新的实例,这就导致了`onCreate()`、`onStart()`和`onResume()`的再次调用。这是因为Android认为屏幕旋转是一种配置更改,可能会改变Activity的布局...
当屏幕旋转时,系统默认会销毁当前的Activity并重新创建一个新的实例,以适应新的屏幕尺寸和方向。这个过程可能会导致数据丢失和不必要的性能开销,因此开发者需要采取一些策略来处理这个问题。 首先,我们可以通过...
然而,当设备屏幕旋转时,Android系统会默认销毁当前活动(Activity)并重新创建,这可能导致Webview中的页面重新加载,用户体验受到影响。为了解决这个问题,我们可以采取以下策略: 1. **状态判断**: 在Activity...
在Android开发中,屏幕旋转(屏幕方向变化)是一个常见的用户交互事件,但处理不当会导致应用程序出现数据丢失、界面状态混乱等问题。尤其是当程序正在进行后台任务(如AsyncTask)或者显示ProgressDialog时,屏幕...
当屏幕旋转时,系统会认为这是一项配置变更(Configuration Change),默认行为是销毁当前Activity并重建,以加载对应新方向的资源。这个过程涉及到Activity的onSaveInstanceState()、onDestroy()、onCreate()、...
默认情况下,当屏幕旋转时,Android会销毁当前运行的Activity,并重新创建一个新的实例,以适应新的屏幕方向。这可能导致数据丢失,除非开发者采取措施保存和恢复之前的状态。 1. **配置变更(Configuration ...
默认情况下,当用户手机的重力感应器打开后,旋转屏幕方向,会导致当前activity发生onDestroy-> onCreate,这样会重新构造当前activity和界面布局,如果在Camera界面,则表现为卡顿或者黑屏一段时间。如果是在横竖屏...
屏幕旋转时,Android系统会销毁当前的Activity并重新创建,这是一个常见的生命周期事件。为了防止数据丢失,我们需要在Activity中实现数据持久化。有两种主要方法可以处理这个问题: 1. **使用onSaveInstanceState...
这种屏幕旋转会导致Activity重建,从而影响到界面上View的布局和显示。因此,理解如何处理屏幕旋转并动态调整控件的位置是Android开发者必须掌握的重要知识点。 首先,我们需要了解Android系统是如何处理屏幕旋转的...
对于屏幕旋转问题,DialogFragment在屏幕旋转时会保留其状态,如果需要在旋转后重新显示对话框,可以将DialogFragment的show()方法放在onSaveInstanceState()中保存的状态里,在onCreate()或onActivityCreated()中...
最后,关于屏幕旋转导致点击事件失效的问题。这是因为当设备旋转时,Activity会重建,而DialogFragment也会重新创建。为了解决这个问题,我们需要在DialogFragment中保存并恢复状态。一种常见的做法是将接口引用保存...
3. **处理屏幕旋转**:根据传感器返回的重力值,你可以确定当前设备是处于哪个方向。通常,我们会使用`SensorManager.getRotationMatrix`和`SensorManager.getOrientation`来获取设备的旋转矩阵和欧拉角。这些角度...
"安卓Android源码——(旋转关节).rar"这个压缩包很可能包含了关于Android系统如何处理屏幕旋转,特别是"旋转关节"这一概念的相关代码和文档。这个“旋转关节”可能指的是用户界面在设备旋转时的响应机制,例如从横屏...