Урок 25. Task. Что это такое и как формируется
Урок 25. Task. Что это такое и как формируется
В этом уроке:
- немного теории по Task
- фиксируем Activity в состоянии Paused
Click here to read this article!
- немного теории по Task
- фиксируем Activity в состоянии Paused
Click here to read this article!
Последний раз редактировалось damager82 20 июн 2017, 15:07, всего редактировалось 9 раз.
Re: Урок 25. Task. Что это такое и как формируется
Маленкий вопрос. А что произойдет в следующем случае.
Из MainActivity Вызываем Activity2 далее Activity3 а из нее MainActivity и кнопку "Назад" Activity 2 и 3 будут уничтожены? Ведь главное окно закрыто.
Из MainActivity Вызываем Activity2 далее Activity3 а из нее MainActivity и кнопку "Назад" Activity 2 и 3 будут уничтожены? Ведь главное окно закрыто.
Re: Урок 25. Task. Что это такое и как формируется
Они будут накладываться друг на друга. Т.е. в одном таске будет несколько экземпляров MainActivity, Activity2 и Activity3. И если из очередного MainActivity нажать Назад, то откроется Activity3.ermek6 писал(а):Маленкий вопрос. А что произойдет в следующем случае.
Из MainActivity Вызываем Activity2 далее Activity3 а из нее MainActivity и кнопку "Назад" Activity 2 и 3 будут уничтожены? Ведь главное окно закрыто.
Чтобы избежать такого поведения, используются атрибуты Activity в манифесте и флаги в Intent. Но подробно я пока в этой теме не копался.
Re: Урок 25. Task. Что это такое и как формируется
Интересный глюк, я запускал это приложение на 2.2 андроид, так там когда жмём Back, ActivityTwo не убивается, а ведёт себя как и MainActivity, т.е. по сути происходил круговой стек. Может глюк, но запустил на 2.3 и теперь всё так же как и в уроке
Re: Урок 25. Task. Что это такое и как формируется
Попыталась это сделать, но файл не сохраняется, ошибки:Для этого открываем AndroidManifest.xm, вкладка Application, находим там ActivityTwo и справа в поле Theme пишем такой текст: @android:style/Theme.Dialog
Parser exception for .../AndroidManifest.xml: Content is not allowed in prolog.
Error in an XML file: aborting build.
Re: Урок 25. Task. Что это такое и как формируется
Нашла! Неправильно прописалось почему-то в самом .xml. Подправила
-
- Сообщения: 9
- Зарегистрирован: 14 дек 2012, 09:14
Re: Урок 25. Task. Что это такое и как формируется
Здравствуйте.
Вот такая штука:
Из activity1 я создаю activity2 и получаю на стеке 2 активности
Если теперь нажать на кнопку back, то activity2 убъется, и проявится activity1 со стека
все отлично.
Но вот как эмулировать такое поведение программно?
Если я пишу в кнопке activity2
подразумевай "вернуться к activity1"
то на стеке остается прошлая активность activity1, а поверх накладывается новый экземпляр activity1
Другими словами, как поработать со стеком активностей программно?
Вот такая штука:
Из activity1 я создаю activity2 и получаю на стеке 2 активности
Код: Выделить всё
activity1
activity2
все отлично.
Но вот как эмулировать такое поведение программно?
Если я пишу в кнопке activity2
Код: Выделить всё
startActivity(new Intent(this, Activity1.class));
finish();
то на стеке остается прошлая активность activity1, а поверх накладывается новый экземпляр activity1
Код: Выделить всё
activity1 (old)
activity1 (newly created)
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 25. Task. Что это такое и как формируется
Если вам нужно вернуться к предыдущей Activity просто вызываете finish(). Вызов метода startActivity тут лишний.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
-
- Сообщения: 9
- Зарегистрирован: 14 дек 2012, 09:14
Re: Урок 25. Task. Что это такое и как формируется
и верно. Спасибо.KamiSempai писал(а):Если вам нужно вернуться к предыдущей Activity просто вызываете finish(). Вызов метода startActivity тут лишний.
Re: Урок 25. Task. Что это такое и как формируется
Здрасти.
Для начала спасибо за уроки. Просто, понятно, доступно.
У меня вот вопрос возник. Где-то (вроде как на Хабре) читал, что в случае скрытия Activity с экрана (Читай onPause, onStop) android-овский сборщик мусора вполне может и уничтожить Activity. А о восстановлении состояния доллжен заботиться сам програмист. Так ли это?
Для начала спасибо за уроки. Просто, понятно, доступно.
У меня вот вопрос возник. Где-то (вроде как на Хабре) читал, что в случае скрытия Activity с экрана (Читай onPause, onStop) android-овский сборщик мусора вполне может и уничтожить Activity. А о восстановлении состояния доллжен заботиться сам програмист. Так ли это?
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 25. Task. Что это такое и как формируется
Да, так. О том как это делать написано в 70 уроке.vladi писал(а):У меня вот вопрос возник. Где-то (вроде как на Хабре) читал, что в случае скрытия Activity с экрана (Читай onPause, onStop) android-овский сборщик мусора вполне может и уничтожить Activity. А о восстановлении состояния доллжен заботиться сам програмист. Так ли это?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 25. Task. Что это такое и как формируется
Код: Выделить всё
Нажмем Back.
Логи:
ActivityTwo: onPause()
MainActivity: onResume()
ActivityTwo: onStop()
ActivityTwo: onDestroy()
соберал под 2.2, выше вроде писали такой же "баг"!? (или там логика менялась?)
Re: Урок 25. Task. Что это такое и как формируется
Если вам надо открыть что-то новое, вы создаете новую вкладку и теперь уже в ней открываете страницы, переходите по ссылкам, возвращаетсь назад.
возвращаетЕсь - ошибка)
возвращаетЕсь - ошибка)
Re: Урок 25. Task. Что это такое и как формируется
Здравствуйте. Помогите разобраться.
У меня при вызове 2го активити как диалогового окна (задаю это программно, в методе onCreate, перед вызовом super.Oncreate()) 1е активити уходит в "Stopped" состояние и диалоговое окно появляется на фоне черного экрана. Как сделать, чтобы 1е активити осталось в состоянии "Paused" и диалоговое окно (2е активити) появилось на его фоне? Спасибо.
У меня при вызове 2го активити как диалогового окна (задаю это программно, в методе onCreate, перед вызовом super.Oncreate()) 1е активити уходит в "Stopped" состояние и диалоговое окно появляется на фоне черного экрана. Как сделать, чтобы 1е активити осталось в состоянии "Paused" и диалоговое окно (2е активити) появилось на его фоне? Спасибо.
Re: Урок 25. Task. Что это такое и как формируется
Добрый день!
возникла проблема , создано 3 активити , после запуска в эмуляторе приложение отображает первое активити , для перехода на второе нажимаю кнопку и мне выдает такой лог ошибок , подскажите в чем проблема ? при двух активити приложение запускалось и переходило по нажатию в следующее - при трех не хочет ни в какую.
02-16 06:55:29.954: D/State(1237): MainActivity: onCreate()
02-16 06:55:29.954: D/State(1237): MainActivity:OnStart
02-16 06:55:29.964: D/State(1237): MainActivity: Resume
02-16 06:55:30.144: D/gralloc_goldfish(1237): Emulator without GPU emulation detected.
02-16 06:55:54.664: D/State(1237): ActivityMain: onPause()
02-16 06:55:54.734: I/Choreographer(1237): Skipped 43 frames! The application may be doing too much work on its main thread.
02-16 06:55:55.084: D/State(1237): ActivityTwo: onCreate()
02-16 06:55:55.114: D/AndroidRuntime(1237): Shutting down VM
02-16 06:55:55.114: W/dalvikvm(1237): threadid=1: thread exiting with uncaught exception (group=0xb4adeba8)
02-16 06:55:55.154: E/AndroidRuntime(1237): FATAL EXCEPTION: main
02-16 06:55:55.154: E/AndroidRuntime(1237): Process: com.example.practic, PID: 1237
02-16 06:55:55.154: E/AndroidRuntime(1237): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.practic/com.example.practic.ActivityTwo}: java.lang.NullPointerException
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.ActivityThread.access$800(ActivityThread.java:135)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.os.Handler.dispatchMessage(Handler.java:102)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.os.Looper.loop(Looper.java:136)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.ActivityThread.main(ActivityThread.java:5017)
02-16 06:55:55.154: E/AndroidRuntime(1237): at java.lang.reflect.Method.invokeNative(Native Method)
02-16 06:55:55.154: E/AndroidRuntime(1237): at java.lang.reflect.Method.invoke(Method.java:515)
02-16 06:55:55.154: E/AndroidRuntime(1237): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
02-16 06:55:55.154: E/AndroidRuntime(1237): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
02-16 06:55:55.154: E/AndroidRuntime(1237): at dalvik.system.NativeStart.main(Native Method)
02-16 06:55:55.154: E/AndroidRuntime(1237): Caused by: java.lang.NullPointerException
02-16 06:55:55.154: E/AndroidRuntime(1237): at com.example.practic.ActivityTwo.onCreate(ActivityTwo.java:23)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.Activity.performCreate(Activity.java:5231)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
02-16 06:55:55.154: E/AndroidRuntime(1237): ... 11 more
02-16 06:55:57.314: I/Process(1237): Sending signal. PID: 1237 SIG: 9
возникла проблема , создано 3 активити , после запуска в эмуляторе приложение отображает первое активити , для перехода на второе нажимаю кнопку и мне выдает такой лог ошибок , подскажите в чем проблема ? при двух активити приложение запускалось и переходило по нажатию в следующее - при трех не хочет ни в какую.
02-16 06:55:29.954: D/State(1237): MainActivity: onCreate()
02-16 06:55:29.954: D/State(1237): MainActivity:OnStart
02-16 06:55:29.964: D/State(1237): MainActivity: Resume
02-16 06:55:30.144: D/gralloc_goldfish(1237): Emulator without GPU emulation detected.
02-16 06:55:54.664: D/State(1237): ActivityMain: onPause()
02-16 06:55:54.734: I/Choreographer(1237): Skipped 43 frames! The application may be doing too much work on its main thread.
02-16 06:55:55.084: D/State(1237): ActivityTwo: onCreate()
02-16 06:55:55.114: D/AndroidRuntime(1237): Shutting down VM
02-16 06:55:55.114: W/dalvikvm(1237): threadid=1: thread exiting with uncaught exception (group=0xb4adeba8)
02-16 06:55:55.154: E/AndroidRuntime(1237): FATAL EXCEPTION: main
02-16 06:55:55.154: E/AndroidRuntime(1237): Process: com.example.practic, PID: 1237
02-16 06:55:55.154: E/AndroidRuntime(1237): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.practic/com.example.practic.ActivityTwo}: java.lang.NullPointerException
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.ActivityThread.access$800(ActivityThread.java:135)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.os.Handler.dispatchMessage(Handler.java:102)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.os.Looper.loop(Looper.java:136)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.ActivityThread.main(ActivityThread.java:5017)
02-16 06:55:55.154: E/AndroidRuntime(1237): at java.lang.reflect.Method.invokeNative(Native Method)
02-16 06:55:55.154: E/AndroidRuntime(1237): at java.lang.reflect.Method.invoke(Method.java:515)
02-16 06:55:55.154: E/AndroidRuntime(1237): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
02-16 06:55:55.154: E/AndroidRuntime(1237): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
02-16 06:55:55.154: E/AndroidRuntime(1237): at dalvik.system.NativeStart.main(Native Method)
02-16 06:55:55.154: E/AndroidRuntime(1237): Caused by: java.lang.NullPointerException
02-16 06:55:55.154: E/AndroidRuntime(1237): at com.example.practic.ActivityTwo.onCreate(ActivityTwo.java:23)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.Activity.performCreate(Activity.java:5231)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
02-16 06:55:55.154: E/AndroidRuntime(1237): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
02-16 06:55:55.154: E/AndroidRuntime(1237): ... 11 more
02-16 06:55:57.314: I/Process(1237): Sending signal. PID: 1237 SIG: 9
Re: Урок 25. Task. Что это такое и как формируется
at com.example.practic.ActivityTwo.onCreate(ActivityTwo.java:23)
сюда жми, ошибка там.
сюда жми, ошибка там.
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: Урок 25. Task. Что это такое и как формируется
не знал что в от логов можно прям к строке ошибки перейти ) поправил ! огромное спасибо !Foenix писал(а):at com.example.practic.ActivityTwo.onCreate(ActivityTwo.java:23)
сюда жми, ошибка там.
Re: Урок 25. Task. Что это такое и как формируется
на эту тему создавался вебинар. Ищите ссылку в соотв. разделе форума.
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: Урок 25. Task. Что это такое и как формируется
Добрый вечер. В уроке написано, что если мы в приложении из активити А переходим в активити Б, затем сворачиваем приложение, и кликаем по иконке приложения, то попадаем на стартовую активити А. Есть ли какая та настройка, при котороый мы бы вернулись в активити Б при клике на иконке приложения?
Re: Урок 25. Task. Что это такое и как формируется
Добрый день.
Проблема такая, при попытке добавить стиль для второго активити в ручную (поскольку использую андроид студио), во время вызова второго активи приложение вылетает с ошибкой, ругаясь на строку "super.onCreate(savedInstanceState);" в классе второго активити.
Как можно решить данную проблему. И неплохо было бы дать информацию о ручной правке манифеста, поскольку визуальный редактор как я понимаю есть только в еклипсе.
Проблема такая, при попытке добавить стиль для второго активити в ручную (поскольку использую андроид студио), во время вызова второго активи приложение вылетает с ошибкой, ругаясь на строку "super.onCreate(savedInstanceState);" в классе второго активити.
Код: Выделить всё
<activity
android:name="ru.devleksey.forteach.app.activity_two"
android:label="@string/title_activity_activity_two"
android:theme="@android:style/Theme.Dialog">
</activity>