Урок 70. onSaveInstanceState. Сохранение данных Activity при повороте экрана
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
onRetainNonConfigurationInstance
getLastNonConfigurationInstance
про эти методы документация пишет - This method was deprecated in API level 13.
Use the new Fragment API setRetainInstance(boolean) instead; this is also available on older platforms through the Android compatibility package.
getLastNonConfigurationInstance
про эти методы документация пишет - This method was deprecated in API level 13.
Use the new Fragment API setRetainInstance(boolean) instead; this is also available on older platforms through the Android compatibility package.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
Все правильно, эти методы устарели после появления фрагментов.
Вообще много чего устарело после выхода фрагментов.
Вообще много чего устарело после выхода фрагментов.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
Еще такой вопрос, я тестирую на телефоне с Android 2.2 и на планшете с 4.0.3
Задача, чтобы если размер картинки меньше размера экрана (в пикселах), то картинка показывается как есть.
А если больше размера экрана, то масштабируется по ширине экрана.
На планшете все работает, при повороте экрана картинка масштабируется по ширине экрана.
А вот на телефоне с 2.2 получается так: при портретной ориентации, картинка по ширине экрана, а при повороте на альбомную, почему-то свой размер не меняет и не растягивается по ширине...
Код такой:
В манифесте:
При повороте экрана картинка не растягивается:
Подскажите пожалуйста, что не так...
Задача, чтобы если размер картинки меньше размера экрана (в пикселах), то картинка показывается как есть.
А если больше размера экрана, то масштабируется по ширине экрана.
На планшете все работает, при повороте экрана картинка масштабируется по ширине экрана.
А вот на телефоне с 2.2 получается так: при портретной ориентации, картинка по ширине экрана, а при повороте на альбомную, почему-то свой размер не меняет и не растягивается по ширине...
Код такой:
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView
android:id="@+id/webView"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</WebView>
</LinearLayout>
Код: Выделить всё
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("http://www.atorus.ru/public/ator/data/photos/b45479-5.jpg");
webView.setInitialScale(1);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
}
}
Код: Выделить всё
<activity
...
android:configChanges="orientation|screenSize"
android:windowSoftInputMode="adjustResize"
android:hardwareAccelerated="false">
Подскажите пожалуйста, что не так...
- Вложения
-
- rotate.jpg (83.68 КБ) 13328 просмотров
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
от переизбытка ответов отвечу тогда сам себеPavel A писал(а):Хотелось бы уточнить , данные в SaveInstanceState точно уничтожается вместе а активити ?rezak90 писал(а):да, но статика то будет жить всегда, даже если мы уже на другой активити, а всё что было в бандле умрёт с активитиFry писал(а):А что - методы onRestoreInstanceState /onSaveInstanceState хранят данные не в памяти?
bundle SaveInstanceState сохраняется в специальной области Activity Record , которая , хотя и связана с той активити в которой создана , но имеет собственный цикл жизни .
Запись в Activity Record будет уничтожена если :
1. Пользователь явно нажал кнопку Back , то есть активити закрывается и соответственно промежуточные результаты хранить больше нет необходимости
2. Устройство было перезагружено
3. Прошло достаточно долго времени , в течении которого к записи в Activity Record не обращались .
в остальных случаях запись будет храниться , даже если активити , в которой она создана будет уничтожена , что на практике значит , что хранить промежуточное состояние в bundle в достаточной степени надежно. Спасибо всем кто участвовал.
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
А у меня вопрос на засыпку
Допустим есть два активити из первого во второй передаем в extras какие-то значения, которые вычитываем затем в активити2 в oncreate.
Вопрос - что происходит с extas когда мы повернем активити 2?
Тончее я знаю, что extras сохраняются, но всегда ли это так и есть ли исключения я не смог.
Допустим есть два активити из первого во второй передаем в extras какие-то значения, которые вычитываем затем в активити2 в oncreate.
Вопрос - что происходит с extas когда мы повернем активити 2?
Тончее я знаю, что extras сохраняются, но всегда ли это так и есть ли исключения я не смог.
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
У меня два вопроса.
1) почему при обычном сворачивании (кнопка home) вызывается метод onSaveInstanceState();
2) куда уходят эти данные? дело в том что если просто свернуть программу, по непонятной причине вызывается метод onSaveInstanceState, при повторном выдвижении свернутой Activity на передний план метод onCreate естественно не вызывается , метод onResoteInstanceState тоже не вызывается (и не должен). так куда идут данные при сворачивании программы и для чего вызов onSaveInstanceState при сворачивании?
1) почему при обычном сворачивании (кнопка home) вызывается метод onSaveInstanceState();
2) куда уходят эти данные? дело в том что если просто свернуть программу, по непонятной причине вызывается метод onSaveInstanceState, при повторном выдвижении свернутой Activity на передний план метод onCreate естественно не вызывается , метод onResoteInstanceState тоже не вызывается (и не должен). так куда идут данные при сворачивании программы и для чего вызов onSaveInstanceState при сворачивании?
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
все написано в библии
http://developer.android.com/reference/ ... os.Bundle)
вообще.. я бы не рассчитывала на этот метод особо..
http://developer.android.com/reference/ ... os.Bundle)
вообще.. я бы не рассчитывала на этот метод особо..
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
я чтитал это . спасибо. там написано что вызывается для activity которая может быть уничтожена. это и есть оно?
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
Добрый день!
у меня почему то вообще не срабатывает метод onRestoreInstanceState
делаю так
нажимаю кнопку Home, возвращаюсь обратно в приложение, и ни чего в логах, запускаю дургую Активность из этой возвращаюсь обратно и опять ни чего в логах
чего делаю не так?
у меня почему то вообще не срабатывает метод onRestoreInstanceState
делаю так
Код: Выделить всё
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.d(TAG, "onRestoreInstanceState A");
}
чего делаю не так?
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
Здравствуйте, а где можно достать остальные видео уроки? А то на ютубе последний урок 63. по видео урокам быстрее запоминается и лучше понимается))
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
Видеоуроки есть только те, что на youtube. Остальные просто не созданы еще.Тарас писал(а):Здравствуйте, а где можно достать остальные видео уроки? А то на ютубе последний урок 63. по видео урокам быстрее запоминается и лучше понимается))
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
мне вот тоже не понятно, куда сохраняются эти данныеargamidon писал(а): 2) куда уходят эти данные? дело в том что если просто свернуть программу, по непонятной причине вызывается метод onSaveInstanceState, при повторном выдвижении свернутой Activity на передний план метод onCreate естественно не вызывается , метод onResoteInstanceState тоже не вызывается (и не должен). так куда идут данные при сворачивании программы и для чего вызов onSaveInstanceState при сворачивании?
и как можно использовать эти два метода, чтобы сохранить данные даже после уничтожения активности и при создании загрузить данные в нее снова
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
Отображение вызова метода onRestoreInstanceState просто НЕ ПОКАЗЫВАЛОСЬ в эмуляторе AVD Android 2.3.3
таки эмулятор AVD Android 2.3.3 глюкавый аднака
Когда запустил ту же прогу на Genymotion все стало отображаться нормально.
Но вопросы остаются... куда уходят данные? и как их можно подхватить из сохраненного состояния когда активность была уничтожена?
таки эмулятор AVD Android 2.3.3 глюкавый аднака
Когда запустил ту же прогу на Genymotion все стало отображаться нормально.
Но вопросы остаются... куда уходят данные? и как их можно подхватить из сохраненного состояния когда активность была уничтожена?
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
Помогите пжл понять механизм кода урока . Почему срабатывают все эти методы за пределами скобок onCreate?
public void onCreate(Bundle savedInstanceState) {
Ведь отсюда эти методы никто не вызывал!
}
public void onCreate(Bundle savedInstanceState) {
Ведь отсюда эти методы никто не вызывал!
}
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
а то что метод onCreate тоже никто не вызывал вас не смутило?)
с такими вопросами в исходники нужно смотреть:
http://grepcode.com/file/repository.gre ... .Intent%29
с такими вопросами в исходники нужно смотреть:
http://grepcode.com/file/repository.gre ... .Intent%29
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
Всем привет. Все прочитал, но прям тупик!
Есть активити a1 и a2. Из a1 перехожу в a2 через - у a1 onPause, onSaveInstanceState, onStop.
В a2 нажимаю назад для перехода в a1. У a1 - onDestroy, onCreate, onResume.
Нет восстановления!!! В хелпе читал, что даже текст в EditText восстанавливается автоматически. Вообще ничего не происходит.
Почему не вызывается onRestoreInstanceState?
Заранее спасибо)
Есть активити a1 и a2. Из a1 перехожу в a2 через - у a1 onPause, onSaveInstanceState, onStop.
В a2 нажимаю назад для перехода в a1. У a1 - onDestroy, onCreate, onResume.
Нет восстановления!!! В хелпе читал, что даже текст в EditText восстанавливается автоматически. Вообще ничего не происходит.
Почему не вызывается onRestoreInstanceState?
Заранее спасибо)
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
что-то с кодом не так... onDestroy быть не должно.fedor77 писал(а):Всем привет. Все прочитал, но прям тупик!
Есть активити a1 и a2. Из a1 перехожу в a2 через - у a1 onPause, onSaveInstanceState, onStop.
В a2 нажимаю назад для перехода в a1. У a1 - onDestroy, onCreate, onResume.
Нет восстановления!!! В хелпе читал, что даже текст в EditText восстанавливается автоматически. Вообще ничего не происходит.
Почему не вызывается onRestoreInstanceState?
Заранее спасибо)
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
Вроде ничего мудренного)klblk писал(а):что-то с кодом не так... onDestroy быть не должно.fedor77 писал(а):Всем привет. Все прочитал, но прям тупик!
Есть активити a1 и a2. Из a1 перехожу в a2 через - у a1 onPause, onSaveInstanceState, onStop.
В a2 нажимаю назад для перехода в a1. У a1 - onDestroy, onCreate, onResume.
Нет восстановления!!! В хелпе читал, что даже текст в EditText восстанавливается автоматически. Вообще ничего не происходит.
Почему не вызывается onRestoreInstanceState?
Заранее спасибо)
В a1 - EditText и две кнопки.
Одна кнопка перекидывает на a2. Вот сам код функции.
public void goChat(View view) {
Intent intent = new Intent(this, ChatAtcivity.class);
if (firstCall) {
message = editText.getText().toString();
WorkClass.getInstance().setMessageText(message);
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy HH:mm");
date = sdf.format(new Date());
intent.putExtra("way", 0);
intent.putExtra("status", "Incomming");
intent.putExtra("message", message);
intent.putExtra("date", date);
connectionState = 1;
} else {
connectionState = 0;
}
startActivity(intent);
}
Остальной код - это то, что создано при генерации нового проекта и функции информирования о состоянии активности.
@Override
protected void onStart() {
super.onStart();
// The activity is about to become visible.
Log.d(TAG, "Main onStart");
}
@Override
protected void onResume() {
super.onResume();
// The activity has become visible (it is now "resumed").
Log.d(TAG, "Main onResume");
}
@Override
protected void onPause() {
super.onPause();
// Another activity is taking focus (this activity is about to be "paused").
Log.d(TAG, "Main onPause");
}
@Override
protected void onStop() {
super.onStop();
// The activity is no longer visible (it is now "stopped")
Log.d(TAG, "Main onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
// The activity is about to be destroyed.
Log.d(TAG, "Main onDestroy");
}
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean("firstCall", firstCall);
Log.d(TAG, "onSaveInstanceState");
}
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
firstCall = savedInstanceState.getBoolean("first_call");
Log.d(TAG, "onRestoreInstanceState");
}
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
Инициализируются 3 таба так вот (код). Подскажите, как сохранить на них ссылки
и потом обрабно достать при поворотах экрана ?
Tab1 -
public class Tab1 extends Fragment {
...
}
Хелп, плз. Спасибо.
[syntax=java5]
private void setupTabs() {
ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
Tab tab1 = actionBar
.newTab()
.setText("Tab1")
.setTag("Tab1")
.setTabListener(
new SupportFragmentTabListener<Tab1>(R.id.flContainer,
this, "Tab1", Tab1.class));
actionBar.addTab(tab1);
actionBar.selectTab(tab1);
...
}
[/syntax]
и потом обрабно достать при поворотах экрана ?
Tab1 -
public class Tab1 extends Fragment {
...
}
Хелп, плз. Спасибо.
[syntax=java5]
private void setupTabs() {
ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
Tab tab1 = actionBar
.newTab()
.setText("Tab1")
.setTag("Tab1")
.setTabListener(
new SupportFragmentTabListener<Tab1>(R.id.flContainer,
this, "Tab1", Tab1.class));
actionBar.addTab(tab1);
actionBar.selectTab(tab1);
...
}
[/syntax]
Тут должна быть подпись.
-
- Сообщения: 15
- Зарегистрирован: 02 июл 2014, 15:26
Re: Урок 70. onSaveInstanceState. Сохранение данных Activity
а гдето есть статя как можно управлять поворачиванием, напирмер если мне нужно чтоб било тольок в горизонтальном положении?