Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 547
#1

После засыпания вызывается onCreate и onRestoreInstanceState - Android

08.01.2016, 23:43. Просмотров 220. Ответов 10
Метки нет (Все метки)

Привет.
После засыпания вызывается onCreate и onRestoreInstanceState, зачем они вызываются и как обойти?
У меня программа для работы по сети в onSaveInstanceState ставит флаг о том что была онлайн перед onStop, и потом в onRestoreInstanceState восстанавливается связь, получается программой не пользуются а она пытается соединиться с сервером. Как решить ?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2027 / 1769 / 549
Регистрация: 12.05.2014
Сообщений: 6,279
Завершенные тесты: 1
09.01.2016, 17:22     После засыпания вызывается onCreate и onRestoreInstanceState #2
гадать на кофейной гуще?
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 547
09.01.2016, 17:24  [ТС]     После засыпания вызывается onCreate и onRestoreInstanceState #3
Паблито, если умеешь.
а что бонально код onCreate и onRestoreInstanceState показать где записан Log.d...?
или видео показать чего еще сказать?
Паблито
2027 / 1769 / 549
Регистрация: 12.05.2014
Сообщений: 6,279
Завершенные тесты: 1
09.01.2016, 17:30     После засыпания вызывается onCreate и onRestoreInstanceState #4
бАнально надо видеть код
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 547
09.01.2016, 17:55  [ТС]     После засыпания вызывается onCreate и onRestoreInstanceState #5
Паблито, Хорошо, без проблем, вот
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("mbCanva", "### onCreate");
}
 
protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        Log.d("mbCanva", "onSaveInstanceState");
    }
protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        Log.d("mbCanva", "onRestoreInstanceState");
    }
@Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("mbCanva", "### onDestroy");
}
@Override
    protected void onStart() {
        super.onStart();
        Log.d("mbCanva", "### onStart");
    }
@Override
    protected void onStop() {
        super.onStop();
        Log.d("mbCanva", "### onStop");
}
@Override
    protected void onResume() {
        super.onResume();
        Log.d("mbCanva", "### onResume");
}
Нажимаю кнопку питания, экран гаснет
логи

onSaveInstanceState
### onStop
### onDestroy
### onCreate
### onStart
onRestoreInstanceState
### onResume


Экран выключен, нажимаю опять кнопку питания и разблокирую экран

### onResume
onSaveInstanceState
### onStop
### onDestroy
### onCreate
### onStart
onRestoreInstanceState
### onResume
Паблито
2027 / 1769 / 549
Регистрация: 12.05.2014
Сообщений: 6,279
Завершенные тесты: 1
09.01.2016, 18:19     После засыпания вызывается onCreate и onRestoreInstanceState #6
странно вообще
и что, нет в коде нигде finish() ?
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 547
09.01.2016, 18:20  [ТС]     После засыпания вызывается onCreate и onRestoreInstanceState #7
Паблито, нет
точнее есть на onBackPressed там диалог с сохранением
Паблито
2027 / 1769 / 549
Регистрация: 12.05.2014
Сообщений: 6,279
Завершенные тесты: 1
09.01.2016, 18:35     После засыпания вызывается onCreate и onRestoreInstanceState #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
странно не то, что вызывается onCreate, а то, что срабатывает onDestroy()

Добавлено через 4 минуты
можно попробовать вот что
добавить в манифест, внутрь с тегом активити, строку
XML
1
android:configChanges="orientation|screenSize"
тогда при смене ориентации и подозреваю при выключении экрана, активити не будет пересоздаваться
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 547
09.01.2016, 18:44  [ТС]     После засыпания вызывается onCreate и onRestoreInstanceState #9
Паблито, добавил
теперь при засыпании
onSaveInstanceState
### onStop


при разблокировке
### onStart
### onResume


onRestoreInstanceState не вызывается.
Паблито
2027 / 1769 / 549
Регистрация: 12.05.2014
Сообщений: 6,279
Завершенные тесты: 1
09.01.2016, 18:55     После засыпания вызывается onCreate и onRestoreInstanceState #10
логично, а зачем его вызывать если активити не убивалась?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2016, 19:11     После засыпания вызывается onCreate и onRestoreInstanceState
Еще ссылки по теме:

Android NullPointer в OnCreate
Сразу после нажатия Power вызывается OnCreate. Почему? Android
Android Ошибка VKSdk.initialize(Context) must be call from Application#onCreate()
Android Перегрузка OnCreate
Подскажите - программа вылетает в OnCreate Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 547
09.01.2016, 19:11  [ТС]     После засыпания вызывается onCreate и onRestoreInstanceState #11
Паблито, всё, вроде работает как надо, буду тестить на куче эмуляторов терь.
да я понял что если нет destroy, то переменную можно тупо глобально сохранить в onStop и прочесть в onResume.
спасибо.
Yandex
Объявления
09.01.2016, 19:11     После засыпания вызывается onCreate и onRestoreInstanceState
Ответ Создать тему
Опции темы

Текущее время: 18:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru