Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 28 май 2017, 21:39

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 17 окт 2011, 03:00 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1329
Благодарил (а): 0 раз.
Поблагодарили: 72 раз.
В этом уроке:

- немного теории по Task
- фиксируем Activity в состоянии Paused

Click here to read this article!

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Последний раз редактировалось damager82 29 апр 2017, 18:50, всего редактировалось 8 раз(а).

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 28 май 2012, 01:23 

Зарегистрирован: 28 май 2012, 00:37
Сообщений: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Маленкий вопрос. А что произойдет в следующем случае.
Из MainActivity Вызываем Activity2 далее Activity3 а из нее MainActivity и кнопку "Назад" Activity 2 и 3 будут уничтожены? Ведь главное окно закрыто.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 28 май 2012, 09:57 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1329
Благодарил (а): 0 раз.
Поблагодарили: 72 раз.
ermek6 писал(а):
Маленкий вопрос. А что произойдет в следующем случае.
Из MainActivity Вызываем Activity2 далее Activity3 а из нее MainActivity и кнопку "Назад" Activity 2 и 3 будут уничтожены? Ведь главное окно закрыто.


Они будут накладываться друг на друга. Т.е. в одном таске будет несколько экземпляров MainActivity, Activity2 и Activity3. И если из очередного MainActivity нажать Назад, то откроется Activity3.

Чтобы избежать такого поведения, используются атрибуты Activity в манифесте и флаги в Intent. Но подробно я пока в этой теме не копался.

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 авг 2012, 00:32 

Зарегистрирован: 30 июл 2012, 00:11
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Интересный глюк, я запускал это приложение на 2.2 андроид, так там когда жмём Back, ActivityTwo не убивается, а ведёт себя как и MainActivity, т.е. по сути происходил круговой стек. Может глюк, но запустил на 2.3 и теперь всё так же как и в уроке :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 14 сен 2012, 12:02 

Зарегистрирован: 30 авг 2012, 16:56
Сообщений: 6
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Цитата:
Для этого открываем 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.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 14 сен 2012, 12:13 

Зарегистрирован: 30 авг 2012, 16:56
Сообщений: 6
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Нашла! Неправильно прописалось почему-то в самом .xml. Подправила :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 11 янв 2013, 15:04 

Зарегистрирован: 14 дек 2012, 09:14
Сообщений: 9
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте.

Вот такая штука:
Из activity1 я создаю activity2 и получаю на стеке 2 активности
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. activity1
  2. activity2

Если теперь нажать на кнопку back, то activity2 убъется, и проявится activity1 со стека
все отлично.

Но вот как эмулировать такое поведение программно?
Если я пишу в кнопке activity2
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. startActivity(new Intent(this, Activity1.class));
  2. finish();

подразумевай "вернуться к activity1"
то на стеке остается прошлая активность activity1, а поверх накладывается новый экземпляр activity1
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. activity1 (old)
  2. activity1 (newly created)


Другими словами, как поработать со стеком активностей программно?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 11 янв 2013, 17:04 
Аватар пользователя

Зарегистрирован: 17 фев 2012, 21:23
Сообщений: 1339
Откуда: Мордор
Благодарил (а): 16 раз.
Поблагодарили: 161 раз.
Если вам нужно вернуться к предыдущей Activity просто вызываете finish(). Вызов метода startActivity тут лишний.

_________________
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 11 янв 2013, 19:14 

Зарегистрирован: 14 дек 2012, 09:14
Сообщений: 9
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
KamiSempai писал(а):
Если вам нужно вернуться к предыдущей Activity просто вызываете finish(). Вызов метода startActivity тут лишний.

и верно. Спасибо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 сен 2013, 10:22 

Зарегистрирован: 10 сен 2013, 10:17
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здрасти. :)
Для начала спасибо за уроки. Просто, понятно, доступно.
У меня вот вопрос возник. Где-то (вроде как на Хабре) читал, что в случае скрытия Activity с экрана (Читай onPause, onStop) android-овский сборщик мусора вполне может и уничтожить Activity. А о восстановлении состояния доллжен заботиться сам програмист. Так ли это?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 сен 2013, 11:43 
Аватар пользователя

Зарегистрирован: 17 фев 2012, 21:23
Сообщений: 1339
Откуда: Мордор
Благодарил (а): 16 раз.
Поблагодарили: 161 раз.
vladi писал(а):
У меня вот вопрос возник. Где-то (вроде как на Хабре) читал, что в случае скрытия Activity с экрана (Читай onPause, onStop) android-овский сборщик мусора вполне может и уничтожить Activity. А о восстановлении состояния доллжен заботиться сам програмист. Так ли это?
Да, так. О том как это делать написано в 70 уроке.

_________________
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 14 окт 2013, 12:06 
Аватар пользователя

Зарегистрирован: 03 сен 2013, 09:39
Сообщений: 145
Откуда: Германия
Благодарил (а): 18 раз.
Поблагодарили: 1 раз.
Код: [ Загрузить ] [ Скрыть ]
  1. Нажмем Back. 
  2.  
  3. Логи: 
  4.  
  5. ActivityTwo: onPause() 
  6. MainActivity: onResume() 
  7. ActivityTwo: onStop() 
  8. ActivityTwo: onDestroy() 

У меня в этом моменте ActivityTwo не убивается, а только теряет фокус и переходит в состояние Paused, т.е. последние 2 события не происходят... зато при выходе иничтожается сначала MainActivity потом ActivityTwo :)
соберал под 2.2, выше вроде писали такой же "баг"!? (или там логика менялась?)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 12 ноя 2013, 13:24 

Зарегистрирован: 13 окт 2013, 10:11
Сообщений: 24
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Если вам надо открыть что-то новое, вы создаете новую вкладку и теперь уже в ней открываете страницы, переходите по ссылкам, возвращаетсь назад.

возвращаетЕсь - ошибка)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 12 янв 2014, 18:45 

Зарегистрирован: 09 янв 2014, 03:09
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте. Помогите разобраться.
У меня при вызове 2го активити как диалогового окна (задаю это программно, в методе onCreate, перед вызовом super.Oncreate()) 1е активити уходит в "Stopped" состояние и диалоговое окно появляется на фоне черного экрана. Как сделать, чтобы 1е активити осталось в состоянии "Paused" и диалоговое окно (2е активити) появилось на его фоне? Спасибо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 фев 2014, 15:02 

Зарегистрирован: 16 фев 2014, 15:00
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Добрый день!
возникла проблема , создано 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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 фев 2014, 15:18 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
at com.example.practic.ActivityTwo.onCreate(ActivityTwo.java:23)

сюда жми, ошибка там.

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 фев 2014, 16:55 

Зарегистрирован: 16 фев 2014, 15:00
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Foenix писал(а):
at com.example.practic.ActivityTwo.onCreate(ActivityTwo.java:23)

сюда жми, ошибка там.

не знал что в от логов можно прям к строке ошибки перейти ) поправил ! огромное спасибо !


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 фев 2014, 21:38 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
на эту тему создавался вебинар. Ищите ссылку в соотв. разделе форума.

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 19 мар 2014, 23:04 

Зарегистрирован: 19 мар 2014, 23:02
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Добрый вечер. В уроке написано, что если мы в приложении из активити А переходим в активити Б, затем сворачиваем приложение, и кликаем по иконке приложения, то попадаем на стартовую активити А. Есть ли какая та настройка, при котороый мы бы вернулись в активити Б при клике на иконке приложения?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 23 июл 2014, 14:57 

Зарегистрирован: 23 июл 2014, 14:49
Сообщений: 4
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Добрый день.
Проблема такая, при попытке добавить стиль для второго активити в ручную (поскольку использую андроид студио), во время вызова второго активи приложение вылетает с ошибкой, ругаясь на строку "super.onCreate(savedInstanceState);" в классе второго активити.
Код: [ Загрузить ] [ Скрыть ]
  1.         <activity 
  2.             android:name="ru.devleksey.forteach.app.activity_two" 
  3.             android:label="@string/title_activity_activity_two" 
  4.             android:theme="@android:style/Theme.Dialog"> 
  5.         </activity> 


Как можно решить данную проблему. И неплохо было бы дать информацию о ручной правке манифеста, поскольку визуальный редактор как я понимаю есть только в еклипсе.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB