Почему Android воссоздает действия по изменению ориентации

Кто-нибудь знает обоснование дизайна Android для уничтожения и воссоздания действий при простом изменении ориентации?

Не следует ли позволять активности просто перерисовывать себя (если он так выбирает) быть более простым, более простым и практичным дизайном?

Кстати, я хорошо знаю, как отключить мое приложение от эффектов изменения ориентации, но то, чего я действительно не понимаю, является причиной этого дизайна в Android

Ответы

Ответ 1

В документах, http://developer.android.com/guide/topics/resources/runtime-changes.html

он утверждает, что

Поведение перезапуска предназначено, чтобы помочь вашему приложению адаптироваться к новым конфигурациям, автоматически перезагружая приложение альтернативными ресурсами.

Ответ 2

Не знаю точно, почему я предполагаю, что он должен восстановить активность на экране.

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;
}

Ответ 3

Это довольно просто. Android уничтожает и воссоздает действие по изменению ориентации, чтобы вы (разработчик) имели возможность продолжать использовать предыдущий макет или использовать и реализовывать другой.