Почему 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 уничтожает и воссоздает действие по изменению ориентации, чтобы вы (разработчик) имели возможность продолжать использовать предыдущий макет или использовать и реализовывать другой.