90 / 85 / 12
Регистрация: 08.08.2013
Сообщений: 667
1

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

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

Привет.
После засыпания вызывается onCreate и onRestoreInstanceState, зачем они вызываются и как обойти?
У меня программа для работы по сети в onSaveInstanceState ставит флаг о том что была онлайн перед onStop, и потом в onRestoreInstanceState восстанавливается связь, получается программой не пользуются а она пытается соединиться с сервером. Как решить ?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2016, 23:43
Ответы с готовыми решениями:

Сразу после нажатия Power вызывается OnCreate. Почему?
Здравствуйте. Пишу вообще под Mono.Android, но в той ветке глухо, да и код очень похож на Java, так...

OnCreate вызывается дважды
Добрый день. Делаю простое приложение, которое при нажатии на кнопку, с помощью Intent должно...

Вызов onCreate у Activity после тапа на уведомлении
Всем доброго времени суток. Я изучаю программирование под Android и попутно пишу...

Предотвращение засыпания
Доброго времени суток. Возникла такая проблема: Некоторый процесс работает в потоке. И при...

10
2881 / 2293 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
09.01.2016, 17:22 2
гадать на кофейной гуще?
1
90 / 85 / 12
Регистрация: 08.08.2013
Сообщений: 667
09.01.2016, 17:24  [ТС] 3
Паблито, если умеешь.
а что бонально код onCreate и onRestoreInstanceState показать где записан Log.d...?
или видео показать чего еще сказать?
0
2881 / 2293 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
09.01.2016, 17:30 4
бАнально надо видеть код
1
90 / 85 / 12
Регистрация: 08.08.2013
Сообщений: 667
09.01.2016, 17:55  [ТС] 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
0
2881 / 2293 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
09.01.2016, 18:19 6
странно вообще
и что, нет в коде нигде finish() ?
1
90 / 85 / 12
Регистрация: 08.08.2013
Сообщений: 667
09.01.2016, 18:20  [ТС] 7
Паблито, нет
точнее есть на onBackPressed там диалог с сохранением
0
2881 / 2293 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
09.01.2016, 18:35 8
Лучший ответ Сообщение было отмечено _Night_Scream_ как решение

Решение

странно не то, что вызывается onCreate, а то, что срабатывает onDestroy()

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


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


onRestoreInstanceState не вызывается.
0
2881 / 2293 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
09.01.2016, 18:55 10
логично, а зачем его вызывать если активити не убивалась?
1
90 / 85 / 12
Регистрация: 08.08.2013
Сообщений: 667
09.01.2016, 19:11  [ТС] 11
Паблито, всё, вроде работает как надо, буду тестить на куче эмуляторов терь.
да я понял что если нет destroy, то переменную можно тупо глобально сохранить в onStop и прочесть в onResume.
спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2016, 19:11

Hp lj m602 странные засыпания
есть М602N интересная проблема у аппарата, пару раз в месяц залипает, в "устройства и принтеры"...

Вызывается исключение после выполнения программы
Только начал изучать классы, так что сразу прошу прощения, если это очень глупая ошибка и тупой...

Окно настройки принтера не вызывается через меню, но вызывается по кнопке
Доброго времени суток. Помогите разобраться. Подключаю к программе принтер, начал с вывода окна...

При создании класса конструктор вызывается 2 раза, затем вызывается деструктор о_О
Вот такой кодclass A { public: A(){} virtual ~A(){} }; class C { public:


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.