为什么Android会在Orientation Change上重新创建活动

时间:2011-07-30 04:53:21

标签: android

有没有人知道设计Android背后的理由是为了在简单的方向改变中销毁和重新创建活动?

不应该允许活动重新绘制(如果它选择的话)是更好,更简单和更实用的设计吗?

顺便说一句,我很清楚如何从方向更改效果中禁用我的应用程序,但我真正得到的是在Android中进行此设计的原因

3 个答案:

答案 0 :(得分:11)

在文档中, http://developer.android.com/guide/topics/resources/runtime-changes.html

它说明了,

重新启动行为旨在通过使用其他资源自动重新加载您的应用程序来帮助您的应用程序适应新配置。

答案 1 :(得分:1)

不知道确切原因,我的猜测是因为它必须在屏幕上重建活动。

OnCreate接受一个变量“Bundle savedInstanceState”。您可以将数据保存在那里以便更快地重新加载。

package com.android.hello;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mTextView = new TextView(this);

        if (savedInstanceState == null) {
            mTextView.setText("Welcome to HelloAndroid!");
        } else {
            mTextView.setText("Welcome back.");
        }

        setContentView(mTextView);
    }

    private TextView mTextView = null;
}

答案 2 :(得分:1)

这很简单。 Android会在方向更改中销毁并重新创建活动,以便您(开发人员)可以选择继续使用以前的布局或使用并实现另一个布局。