0 0

关于屏幕旋转,会重新onCreate()的问题。25

关于屏幕旋转, 貌似转了后会调用 Activity的onDestory,然后重新创建一个Activity调用onCreate的。 不知道真机怎么样?

难道要保持屏幕上次的样子,需要自己程序记录下当前屏幕状态吗?

比如我在View上Draw了很多东西了, 转一下重新onCreate就啥都没有了??
2009年6月05日 09:44

2个答案 按时间排序 按投票排序

0 0

希望这里有你需要的答案:
http://www.android123.com.cn/kaifafaq/266.html

2009年6月12日 22:01
0 0

你要么重新绘制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应用程序开发过程中,开发者经常面临的一个问题是屏幕旋转导致的应用性能下降。当设备从竖屏切换至横屏(或者相反),系统默认行为是销毁当前...

    简单实例屏幕旋转(学习专用)

    当屏幕旋转时,Android系统会销毁当前的Activity并重新创建,因此如果你的Activity保存了状态(比如用户输入的信息),你可能需要处理配置变更。有两种方法可以做到这一点:一是使用`onSaveInstanceState()`和`...

    Android 屏幕旋转Demo

    6. **数据持久化**:屏幕旋转会导致Activity重建,因此需要在`onSaveInstanceState(Bundle outState)`方法中保存重要数据,并在`onCreate(Bundle savedInstanceState)`或`onRestoreInstanceState(Bundle ...

    Android屏幕旋转

    - 不处理配置变化可能会导致性能问题,因为每次屏幕旋转都会重新加载Activity及其所有视图和数据。 7. **适配多屏幕**: 良好的屏幕适配策略包括使用布局资源目录(如`layout-land`用于横屏,`layout-port`用于竖...

    Android屏幕旋转时Activity的生命周期

    当屏幕旋转时,Android默认的行为是销毁当前的Activity并重建一个新的实例,这就导致了`onCreate()`、`onStart()`和`onResume()`的再次调用。这是因为Android认为屏幕旋转是一种配置更改,可能会改变Activity的布局...

    Android屏幕旋转适配

    当屏幕旋转时,系统默认会销毁当前的Activity并重新创建一个新的实例,以适应新的屏幕尺寸和方向。这个过程可能会导致数据丢失和不必要的性能开销,因此开发者需要采取一些策略来处理这个问题。 首先,我们可以通过...

    Android webview旋转屏幕导致页面重新加载问题解决办法

    然而,当设备屏幕旋转时,Android系统会默认销毁当前活动(Activity)并重新创建,这可能导致Webview中的页面重新加载,用户体验受到影响。为了解决这个问题,我们可以采取以下策略: 1. **状态判断**: 在Activity...

    Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案

    在Android开发中,屏幕旋转(屏幕方向变化)是一个常见的用户交互事件,但处理不当会导致应用程序出现数据丢失、界面状态混乱等问题。尤其是当程序正在进行后台任务(如AsyncTask)或者显示ProgressDialog时,屏幕...

    安卓屏幕旋转Demo

    当屏幕旋转时,系统会认为这是一项配置变更(Configuration Change),默认行为是销毁当前Activity并重建,以加载对应新方向的资源。这个过程涉及到Activity的onSaveInstanceState()、onDestroy()、onCreate()、...

    Android开发--教你巧妙应对屏幕旋转

    默认情况下,当屏幕旋转时,Android会销毁当前运行的Activity,并重新创建一个新的实例,以适应新的屏幕方向。这可能导致数据丢失,除非开发者采取措施保存和恢复之前的状态。 1. **配置变更(Configuration ...

    Android实现屏幕旋转方法总结

    默认情况下,当用户手机的重力感应器打开后,旋转屏幕方向,会导致当前activity发生onDestroy-> onCreate,这样会重新构造当前activity和界面布局,如果在Camera界面,则表现为卡顿或者黑屏一段时间。如果是在横竖屏...

    日期选择控件(可防止屏幕旋转抛出的异常)

    屏幕旋转时,Android系统会销毁当前的Activity并重新创建,这是一个常见的生命周期事件。为了防止数据丢失,我们需要在Activity中实现数据持久化。有两种主要方法可以处理这个问题: 1. **使用onSaveInstanceState...

    View随着屏幕旋转,动态改变控件位置

    这种屏幕旋转会导致Activity重建,从而影响到界面上View的布局和显示。因此,理解如何处理屏幕旋转并动态调整控件的位置是Android开发者必须掌握的重要知识点。 首先,我们需要了解Android系统是如何处理屏幕旋转的...

    使用DialogFragment替代AlertDialog

    对于屏幕旋转问题,DialogFragment在屏幕旋转时会保留其状态,如果需要在旋转后重新显示对话框,可以将DialogFragment的show()方法放在onSaveInstanceState()中保存的状态里,在onCreate()或onActivityCreated()中...

    DialogFragment的使用及利用自定义interface点击事件并解决旋转屏幕点击事件失效问题

    最后,关于屏幕旋转导致点击事件失效的问题。这是因为当设备旋转时,Activity会重建,而DialogFragment也会重新创建。为了解决这个问题,我们需要在DialogFragment中保存并恢复状态。一种常见的做法是将接口引用保存...

    重力感应旋转屏幕支持4个方向旋转

    3. **处理屏幕旋转**:根据传感器返回的重力值,你可以确定当前设备是处于哪个方向。通常,我们会使用`SensorManager.getRotationMatrix`和`SensorManager.getOrientation`来获取设备的旋转矩阵和欧拉角。这些角度...

    安卓Android源码——(旋转关节).rar

    "安卓Android源码——(旋转关节).rar"这个压缩包很可能包含了关于Android系统如何处理屏幕旋转,特别是"旋转关节"这一概念的相关代码和文档。这个“旋转关节”可能指的是用户界面在设备旋转时的响应机制,例如从横屏...

Global site tag (gtag.js) - Google Analytics