Урок 24. Activity Lifecycle, пример смены состояний с двумя Activity
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
подскажите пожалуйста , выводит ошибку в main.xml на строчку android:text="@string/hello"> (не нашел ресурс, который соответствует данному имени), в чем ошибка?
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
Значит у вас нет строки с именем hello
-
- Сообщения: 115
- Зарегистрирован: 08 янв 2015, 14:32
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
созрел глупый вопрос: хорошо, у нас есть несколько состояний активити... понятно, что на старте мы можем выполнить какой-то код... понятно что перед смертью активити можно что-то выполнить на прощание... вот сижу и пытаюсь придумать как можно использовать onDestroy() onStop() onPause() ??? зачем мне столько состояний? практическое применение покрыто мраком)))
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
Конечно, если просто сидеть и думать, глядя в потолок - то мраком, да. А если взять и почитать урок, то парочка отпадет и останется одно.
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
-
- Сообщения: 115
- Зарегистрирован: 08 янв 2015, 14:32
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
не понимаю зачем "писать эмоции" ???Foenix писал(а):...
по факту полезной информации в вашем высказывании нет.
Зато успешно потролили нубика вроде меня. Зачёт(
И откуда у Вас информация, что я гляжу в потолок?
вот перечитываю ваше многобуквие - там нет ответа на мой вопрос(
я не в первый раз с Вами пересекаюсь уже в топиках. полезной информации минимум. сплошной экшен на грани флуда и флейма. Зачем??? Ваша рекомендация мне "взять и почитать урок" не помогла, к сожалению. Точнее именно в этом уроке ответа я не нашёл. Копаю дальше...
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
Граф, вы меня тут воспитывать пытаетесь?
а загуглить, если в уроке не понятно?
http://stackoverflow.com/questions/8515 ... ethods-for
а загуглить, если в уроке не понятно?
http://stackoverflow.com/questions/8515 ... ethods-for
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
-
- Сообщения: 115
- Зарегистрирован: 08 янв 2015, 14:32
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
я пытаюсь разобраться с Андройдом. остальное интересует меньше всего.Foenix писал(а):...
возникают вопросы - пишу сюда. иначе зачем нужен этот форум?
Гугл конечно рулит, но тут ресурс тематический и русскоязычный... - как бы получается использую по назначению)
Что касательно лично Вас, - это Вы решили что я Вас пытаюсь воспитывать.
обычная ситуация: один задал вопрос. другой прочитал - захотел ответил. - не захотел пропустил. ничего больше ведь не требуется.
Наша с Вами ситуация: один нуб задал вопрос. ждёт, может кто напишет ему нубу... в ответ же он получает "КАШМАР!!! какой ленивый и глупый НУБ!" - утрирую.
- автоматом возникает вопрос: "зачем писать это? - лучше бы по теме пару слов вместо этого раз уж нашлось время на написание сообщения мне...".
повторюсь мне нет дела до Вас лично, я здесь исключительно по теме АНДРОЙДА... предлагаю забыть все лишние буквы и эмоции...
За ссылку спасибо! двигаемся дальше... хотя по факту чем дальше в дебри, тем больше вопросов)))
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
http://www.youtube.com/watch?v=4-CRPx7z ... VvOFB7fkLa
и так далее
если уж и после этого не станет ясно..
и так далее
если уж и после этого не станет ясно..
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
- Mr.KotoFei
- Сообщения: 2
- Зарегистрирован: 11 ноя 2014, 13:12
- Откуда: Новосибирск
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
Я случайно в onClick указал переход из MainActivity в MainActivity(сам га себя), создаётся второй такой же активити?
И вот ещё, ( я создал 2 активити и взаимный переход между ними) несколько раз переходу из одного активити (1)во второй активити(2), после возвращаюсь вактивити(1) и и нажимая (телефонную кнопку назад со стрелочкой, не знаю как называется)) он не выходит из приложения ,а возвращается в активити2, эму ещё раз "назад" и возвращается на (1), и так столько раз, сколько япрперехожил из одного активити в другой. Это значит, что акьивити(2) не уничтожается, а остаётся в памяти?
Извините, по определенным причинам не могу просмотреть логи и за то, что корявл написал тоже, т.к пишу с телефона ))
Я кажется разобрался.. Получается я переходу из активити1 в активити2(создается второе активити, а первое в памяти) после, перехожу из активити2 в активити1( создаётся ещё одно активити1, а 1,и 2 остаётся в памяти, и получилось, что я открыл сразу две одинаковых активити). . таким образом, если уже существует кнопка "назад" на телефоне, то взаимный переход между двумя активити вовсе не нужен. Это из личного, только что приобретенного опыта)) если что-то не так, поправьте)
А как сделать, чтобы активити уничтожался при нажатии button, а не телефонной кнопки назад. Просто прописать кнопке onclick "finish"? И получится, мы нажали ту же кнопку " назад "?
И вот ещё, ( я создал 2 активити и взаимный переход между ними) несколько раз переходу из одного активити (1)во второй активити(2), после возвращаюсь вактивити(1) и и нажимая (телефонную кнопку назад со стрелочкой, не знаю как называется)) он не выходит из приложения ,а возвращается в активити2, эму ещё раз "назад" и возвращается на (1), и так столько раз, сколько япрперехожил из одного активити в другой. Это значит, что акьивити(2) не уничтожается, а остаётся в памяти?
Извините, по определенным причинам не могу просмотреть логи и за то, что корявл написал тоже, т.к пишу с телефона ))
Я кажется разобрался.. Получается я переходу из активити1 в активити2(создается второе активити, а первое в памяти) после, перехожу из активити2 в активити1( создаётся ещё одно активити1, а 1,и 2 остаётся в памяти, и получилось, что я открыл сразу две одинаковых активити). . таким образом, если уже существует кнопка "назад" на телефоне, то взаимный переход между двумя активити вовсе не нужен. Это из личного, только что приобретенного опыта)) если что-то не так, поправьте)
А как сделать, чтобы активити уничтожался при нажатии button, а не телефонной кнопки назад. Просто прописать кнопке onclick "finish"? И получится, мы нажали ту же кнопку " назад "?
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
В видеоуроке этот момент описывается на 0:42 промежутке времени:superrash писал(а):подскажите пожалуйста , выводит ошибку в main.xml на строчку android:text="@string/hello"> (не нашел ресурс, который соответствует данному имени), в чем ошибка?
"...данная ошибка связана с обновлением версии, изменилось имя по умолчанию строковой константы в файле Strings.xml в папке "values", скопируйте правильное имя константы из данного файла...."
Т.е. откройте Strings.xml, найдите там следующий код:
<string name="hello_world">Hello world!</string>
скопируйте hello_world и вставьте вместо Вашего @string/hello
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
Из Рето Майер. Android 4. Программирование приложений для планшетных компьютеров и смартфонов. Стр 117-119GRAF_COLLIOSTRO писал(а):созрел глупый вопрос: хорошо, у нас есть несколько состояний активити... понятно, что на старте мы можем выполнить какой-то код... понятно что перед смертью активити можно что-то выполнить на прощание... вот сижу и пытаюсь придумать как можно использовать onDestroy() onStop() onPause() ??? зачем мне столько состояний? практическое применение покрыто мраком)))
Подробнее о состояниях Активности
Пребывая в «полноценном» состоянии, между созданием и уничтожением, объект Activity может несколько раз становиться активным и видимым. Каждый такой переход сопровождается вызовом ранее описанных обработчиков. В этом разделе более подробно рассматривается каждое из состояний, а также характерные для них события.
Полноценное состояние
Активность пребывает в полноценном состоянии между первым вызовом метода onCreate и последним вызовом метода onDestroy. Нередко работа Активности может быть прервана без вызова onDestroy.
Используйте обработчик onCreate, чтобы инициализировать Активность, загружайте пользовательский интерфейс, получайте ссылки на Фрагменты, размещайте ссылки на свойства класса, связывайте данные с элементами управления, запускайте Сервисы и таймеры. Если Активность неожиданно закрывается системой, метод onCreate принимает объект Bundle, содержащий состояние пользовательского интерфейса, сохраненное в последнем вызове обработчика onSavelnstanceState. Для восстановления графического интерфейса в его предыдущем состоянии нужно задействовать эту переменную: внутри методов onCreate или onRestorelnstanceState.
Обратитесь к переопределенному обработчику onDestroy, чтобы очищать любые ресурсы, созданные в методе onCreate, и закрывать подключения к таким внешним источникам, как сеть или базы данных.
В официальном руководстве по написанию эффективного кода для Android рекомендуется избегать создания объектов с коротким жизненным циклом. Быстрое появление и уничтожение объектов провоцирует дополнительное срабатывание сборщика мусора (garbage collector, или GC), что может оставить неприятное впечатление у пользователя от работы приложения. Если ваша Активность регулярно выделяет память для одного и того же набора объектов, подумайте, можно ли переместить их создание в метод onCreate, который вызывается всего один раз за все время жизни объекта Activity.
Видимое состояние
Активность считается видимой между вызовами методов onStart и onStop. В таком состоянии она видна пользователю, но при этом может быть и частично перекрытой и не реагировать на ввод. Переходя из фонового режима на передний план и обратно, Активности могут несколько раз менять свое «видное» состояние, находясь при этом в полноценной фазе жизненного цикла. Хотя обычно это не происходит, но в крайних случаях Android может прервать работу видимой Активности без вызова метода onStop.
Обработчик onStop используется для приостановки анимации, потоков, отслеживания показаний датчиков, запросов к GPS, таймеров, Сервисов или других процессов, которые нужны исключительно для обновления пользовательского интерфейса. Нет смысла потреблять ресурсы (такты центрального процессора или сетевой трафик) для обновления интерфейса, в то время как он не виден на экране. Примените методы onStart или onRestart для возобновления или повторного запуска этих процессов, когда Активность опять станет видимой.
onRestart предшествует вызовам метода onStart (кроме самого первого). Используйте его для специальных действий, которые должны выполняться только при повторном запуске Активности в рамках «полноценного» состояния.
Методы onStart/onStop также нужны для регистрации (и ее отмены) Широковещательных приемников, которые задействуются исключительно для обновления графического интерфейса. Больше о Широковещательных приемниках вы узнаете в главе 5.
Активное состояние
Оно начинается с момента вызова метода onResume и заканчивается при вызове onPause. В этом состоянии Активность находится на переднем плане и может принимать пользовательский ввод. Прежде чем быть уничтоженным, объект Activity способен несколько раз входить в активное состояние и выходить из него, например при потере фокуса, отображении новой Активности или когда устройство входит в режим ожидания. Пытайтесь размещать в методах onPause и onResume относительно быстрый и легковесный код, чтобы ваше приложение оставалось отзывчивым при скрытии с экрана или выходе на передний план.
Прямо перед onPause вызывается обработчик onSavelnstanceState. Он предоставляет возможность сохранять состояние пользовательского интерфейса Активности в объект Bundle, который потом будет передаваться в методы onCreate и onRestorelnstanceState. Используйте обработчик onSavelnstanceState для сохранения состояния интерфейса (например, состояния флажков, текущего выделенного элемента или введенных, но несохраненных данных), чтобы объект Activity при следующем входе в активное состояние мог вывести на экран тот же интерфейс. Рассчитывайте, что перед завершением работы процесса во время активного состояния будут вызваны обработчики onSavelnstanceState и onPause.
В большинстве реализаций класса Activity переопределяется как минимум метод onPause. Внутри него фиксируются несохраненные изменения, потому как после его выполнения работа Активности может прерваться без предупреждения. Исходя из архитектуры своего приложения, вы также можете приостановить выполнение потоков, процессов или Широковещательных приемников, пока Активность не появится на переднем плане.
Метод onResume может быть довольно легковесным. Вам не нужно перезагружать состояние пользовательского интерфейса внутри него, так как эти функции возложены на обработчики onCreate и onRestorelnstanceState. Используйте метод onResume для регистрации любых Широковещательных приемников или других процессов, которые должны приостанавливаться внутри обработчика onPause.
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
Логи:
MainActivity: onCreate()
MainActivity: onStart()
MainActivity: onResume()
Все, как и в прошлый раз - вызываются три метода. Activity проходит через состояния Stopped, Paused и остается в состоянии Resumed.
разве не через состояния onCreate() и onStart() и остается в состоянии onResume() ?
-
- Сообщения: 5
- Зарегистрирован: 13 авг 2016, 17:54
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
Доброго времени суток, такой вопрос. Насколько сильно грузят систему много открытых активити, даже если они находятся в состоянии "OnPause()","OnStop()". Я к чему клоню, если написать приложение, которое будет тестировать по какой-либо среде. Главным активити будет запускать тесты, и потом каждое активити будет отвечать за каждый вопрос теста. На каждом "Тестовом активити" будет кнопка перехода не следующее активити и т.д. И так переходы до последнего активити для получения результата.
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
Доброго дня. У меня возникает такая интересная штука. Есть 2 Activity, на второй выбираю кнопку, сохраняю результат через Intent и возвращаюсь в первой Activity.
Добавил логгирование, как в уроке. И я вижу, что при переходе ко второму Activity, первое не становится в состояние onStop(), а только в onPause, так же возвращаясь к нему из второго Activity происходит onResume().
Но мне бы хотелось обновить содержимое некоторых View
Добавил логгирование, как в уроке. И я вижу, что при переходе ко второму Activity, первое не становится в состояние onStop(), а только в onPause, так же возвращаясь к нему из второго Activity происходит onResume().
Но мне бы хотелось обновить содержимое некоторых View
Re: Урок 24. Activity Lifecycle, пример смены состояний с дв
Добрый день!NovikPY писал(а):В видеоуроке этот момент описывается на 0:42 промежутке времени:superrash писал(а):подскажите пожалуйста , выводит ошибку в main.xml на строчку android:text="@string/hello"> (не нашел ресурс, который соответствует данному имени), в чем ошибка?
"...данная ошибка связана с обновлением версии, изменилось имя по умолчанию строковой константы в файле Strings.xml в папке "values", скопируйте правильное имя константы из данного файла...."
Т.е. откройте Strings.xml, найдите там следующий код:
<string name="hello_world">Hello world!</string>
скопируйте hello_world и вставьте вместо Вашего @string/hello
Эту ошибку подправил. Приложение компилируется и работает, но есть такой момент.
В строке android:text="@string/hello_world"> подчеркнуто красным "hello_world" и при наведении мыши пишет, что ожидается класс или интерфейс.
Я использую Android studio 3.0.1.
Возможно в этом дело.