Страница 4 из 4

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 30 ноя 2014, 01:02
superrash
подскажите пожалуйста , выводит ошибку в main.xml на строчку android:text="@string/hello"> (не нашел ресурс, который соответствует данному имени), в чем ошибка?

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 30 ноя 2014, 01:25
Mikhail_dev
Значит у вас нет строки с именем hello

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 13 янв 2015, 08:05
GRAF_COLLIOSTRO
созрел глупый вопрос: хорошо, у нас есть несколько состояний активити... понятно, что на старте мы можем выполнить какой-то код... понятно что перед смертью активити можно что-то выполнить на прощание... вот сижу и пытаюсь придумать как можно использовать onDestroy() onStop() onPause() ??? зачем мне столько состояний? практическое применение покрыто мраком)))

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 13 янв 2015, 12:31
Foenix
Конечно, если просто сидеть и думать, глядя в потолок - то мраком, да. А если взять и почитать урок, то парочка отпадет и останется одно.

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 13 янв 2015, 13:46
GRAF_COLLIOSTRO
Foenix писал(а):...
не понимаю зачем "писать эмоции" ???
по факту полезной информации в вашем высказывании нет.
Зато успешно потролили нубика вроде меня. Зачёт(
И откуда у Вас информация, что я гляжу в потолок?
вот перечитываю ваше многобуквие - там нет ответа на мой вопрос(
я не в первый раз с Вами пересекаюсь уже в топиках. полезной информации минимум. сплошной экшен на грани флуда и флейма. Зачем??? Ваша рекомендация мне "взять и почитать урок" не помогла, к сожалению. Точнее именно в этом уроке ответа я не нашёл. Копаю дальше...

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 13 янв 2015, 15:19
Foenix
Граф, вы меня тут воспитывать пытаетесь?
а загуглить, если в уроке не понятно?
http://stackoverflow.com/questions/8515 ... ethods-for

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 14 янв 2015, 09:55
GRAF_COLLIOSTRO
Foenix писал(а):...
я пытаюсь разобраться с Андройдом. остальное интересует меньше всего.
возникают вопросы - пишу сюда. иначе зачем нужен этот форум?
Гугл конечно рулит, но тут ресурс тематический и русскоязычный... - как бы получается использую по назначению)

Что касательно лично Вас, - это Вы решили что я Вас пытаюсь воспитывать.
обычная ситуация: один задал вопрос. другой прочитал - захотел ответил. - не захотел пропустил. ничего больше ведь не требуется.
Наша с Вами ситуация: один нуб задал вопрос. ждёт, может кто напишет ему нубу... в ответ же он получает "КАШМАР!!! какой ленивый и глупый НУБ!" - утрирую.
- автоматом возникает вопрос: "зачем писать это? - лучше бы по теме пару слов вместо этого раз уж нашлось время на написание сообщения мне...".

повторюсь мне нет дела до Вас лично, я здесь исключительно по теме АНДРОЙДА... предлагаю забыть все лишние буквы и эмоции...

За ссылку спасибо! двигаемся дальше... хотя по факту чем дальше в дебри, тем больше вопросов)))

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 14 янв 2015, 10:37
Foenix
http://www.youtube.com/watch?v=4-CRPx7z ... VvOFB7fkLa
и так далее
если уж и после этого не станет ясно..

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 12 мар 2015, 19:49
Mr.KotoFei
Я случайно в onClick указал переход из MainActivity в MainActivity(сам га себя), создаётся второй такой же активити?
И вот ещё, ( я создал 2 активити и взаимный переход между ними) несколько раз переходу из одного активити (1)во второй активити(2), после возвращаюсь вактивити(1) и и нажимая (телефонную кнопку назад со стрелочкой, не знаю как называется)) он не выходит из приложения ,а возвращается в активити2, эму ещё раз "назад" и возвращается на (1), и так столько раз, сколько япрперехожил из одного активити в другой. Это значит, что акьивити(2) не уничтожается, а остаётся в памяти?
Извините, по определенным причинам не могу просмотреть логи :( и за то, что корявл написал тоже, т.к пишу с телефона ))

Я кажется разобрался.. Получается я переходу из активити1 в активити2(создается второе активити, а первое в памяти) после, перехожу из активити2 в активити1( создаётся ещё одно активити1, а 1,и 2 остаётся в памяти, и получилось, что я открыл сразу две одинаковых активити). . таким образом, если уже существует кнопка "назад" на телефоне, то взаимный переход между двумя активити вовсе не нужен. Это из личного, только что приобретенного опыта)) если что-то не так, поправьте)

А как сделать, чтобы активити уничтожался при нажатии button, а не телефонной кнопки назад. Просто прописать кнопке onclick "finish"? И получится, мы нажали ту же кнопку " назад "?

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 17 мар 2015, 20:31
NovikPY
superrash писал(а):подскажите пожалуйста , выводит ошибку в main.xml на строчку android:text="@string/hello"> (не нашел ресурс, который соответствует данному имени), в чем ошибка?
В видеоуроке этот момент описывается на 0:42 промежутке времени:
"...данная ошибка связана с обновлением версии, изменилось имя по умолчанию строковой константы в файле Strings.xml в папке "values", скопируйте правильное имя константы из данного файла...."
Т.е. откройте Strings.xml, найдите там следующий код:

<string name="hello_world">Hello world!</string>

скопируйте hello_world и вставьте вместо Вашего @string/hello ;)

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 09 авг 2015, 00:05
FLancer
GRAF_COLLIOSTRO писал(а):созрел глупый вопрос: хорошо, у нас есть несколько состояний активити... понятно, что на старте мы можем выполнить какой-то код... понятно что перед смертью активити можно что-то выполнить на прощание... вот сижу и пытаюсь придумать как можно использовать onDestroy() onStop() onPause() ??? зачем мне столько состояний? практическое применение покрыто мраком)))
Из Рето Майер. Android 4. Программирование приложений для планшетных компьютеров и смартфонов. Стр 117-119
Подробнее о состояниях Активности

Пребывая в «полноценном» состоянии, между созданием и уничтожением, объект 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, пример смены состояний с дв

Добавлено: 10 апр 2016, 08:26
mr.Rich
Логи:

MainActivity: onCreate()
MainActivity: onStart()
MainActivity: onResume()

Все, как и в прошлый раз - вызываются три метода. Activity проходит через состояния Stopped, Paused и остается в состоянии Resumed.

разве не через состояния onCreate() и onStart() и остается в состоянии onResume() ?

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 13 авг 2016, 18:06
Serega_Alfach
Доброго времени суток, такой вопрос. Насколько сильно грузят систему много открытых активити, даже если они находятся в состоянии "OnPause()","OnStop()". Я к чему клоню, если написать приложение, которое будет тестировать по какой-либо среде. Главным активити будет запускать тесты, и потом каждое активити будет отвечать за каждый вопрос теста. На каждом "Тестовом активити" будет кнопка перехода не следующее активити и т.д. И так переходы до последнего активити для получения результата.

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 05 фев 2018, 00:02
ilyako
Доброго дня. У меня возникает такая интересная штука. Есть 2 Activity, на второй выбираю кнопку, сохраняю результат через Intent и возвращаюсь в первой Activity.
Добавил логгирование, как в уроке. И я вижу, что при переходе ко второму Activity, первое не становится в состояние onStop(), а только в onPause, так же возвращаясь к нему из второго Activity происходит onResume().
Но мне бы хотелось обновить содержимое некоторых View

Re: Урок 24. Activity Lifecycle, пример смены состояний с дв

Добавлено: 23 мар 2018, 14:04
alex_bam
NovikPY писал(а):
superrash писал(а):подскажите пожалуйста , выводит ошибку в main.xml на строчку android:text="@string/hello"> (не нашел ресурс, который соответствует данному имени), в чем ошибка?
В видеоуроке этот момент описывается на 0:42 промежутке времени:
"...данная ошибка связана с обновлением версии, изменилось имя по умолчанию строковой константы в файле 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.
Возможно в этом дело.