как вызывать выполнение функций из собственного класса

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: как вызывать выполнение функций из собственного класса

Сообщение altwin » 17 апр 2014, 18:05

n0tb0dy писал(а):просто в активности у меня есть текстовое поле в которое выводится число запущенных активностей в текущей задаче, это я сделал для наглядности

на этом приложении я просто изучаю жизененные циклы активностей во всех их вариантах и способах запуска, а также Task and Back Stack
На самом деле если переопредлять кнопки или онклики или что угодно, то и обновление текстовых, как и других полей можно делать там же, но скорее всего поведение будет не предсказуемым.

P.S. вообще так можно весь lifecycle убить :)
Последний раз редактировалось altwin 17 апр 2014, 18:06, всего редактировалось 2 раза.
Изображение

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: как вызывать выполнение функций из собственного класса

Сообщение altwin » 17 апр 2014, 18:05

Foenix писал(а):вывод результата метода в текстовые поля необходимо делать в классе активности, в методе onInfoClick()
в чужом методе, как в черном ящике - не должны изменяться поля другого класса (а именно класса активности!)
а если очень.. ну очень хочется ? :)
Изображение

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: как вызывать выполнение функций из собственного класса

Сообщение n0tb0dy » 17 апр 2014, 18:06

я в onInfoClick ни чего не вывожу в текстовые поля активности, там вывод только в лог

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: как вызывать выполнение функций из собственного класса

Сообщение Foenix » 17 апр 2014, 18:06

altwin писал(а):
Foenix писал(а):вывод результата метода в текстовые поля необходимо делать в классе активности, в методе onInfoClick()
в чужом методе, как в черном ящике - не должны изменяться поля другого класса (а именно класса активности!)
а если очень.. ну очень хочется ? :)
все, ты рухнул в моих глазах
R.id.team

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

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: как вызывать выполнение функций из собственного класса

Сообщение Foenix » 17 апр 2014, 18:07

n0tb0dy писал(а):я в onInfoClick ни чего не вывожу в текстовые поля активности, там вывод только в лог
в лог допустимо, естественно.
R.id.team

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

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: как вызывать выполнение функций из собственного класса

Сообщение altwin » 17 апр 2014, 18:09

Foenix писал(а):
altwin писал(а):
Foenix писал(а):вывод результата метода в текстовые поля необходимо делать в классе активности, в методе onInfoClick()
в чужом методе, как в черном ящике - не должны изменяться поля другого класса (а именно класса активности!)
а если очень.. ну очень хочется ? :)
все, ты рухнул в моих глазах
Кто знает... может быть завтра у тебя будет другое настроение ... :)

P.S. на самом деле мне кажется нет ничего плохого в том, что когда человек учиться - сразу понять... это фреймворк и можно все... да не будет гаррантированного поведения и так делать не нужно, но это программист у руля, а не наоборот и если это нужно, то это можно таки :)
Изображение

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: как вызывать выполнение функций из собственного класса

Сообщение n0tb0dy » 17 апр 2014, 18:10

короче чтобы было понятно как это все выглядит и работает, можно посмотреть тут

http://pr0andr0id.blogspot.ru/

я просто начал вести блог, как начал изучать программирование под Андроид

так и сам лучше усваиваешь, когда, еще раз все записываешь, и людям может сгодится

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: как вызывать выполнение функций из собственного класса

Сообщение altwin » 17 апр 2014, 18:17

n0tb0dy писал(а):короче чтобы было понятно как это все выглядит и работает, можно посмотреть тут

http://pr0andr0id.blogspot.ru/

я просто начал вести блог, как начал изучать программирование под Андроид

так и сам лучше усваиваешь, когда, еще раз все записываешь, и людям может сгодится
разве может программист жить на blogspot ? :)
http://jekyllrb.com/
;)

заодно и git с markdown подтяните - пригодится ...
Изображение

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: как вызывать выполнение функций из собственного класса

Сообщение Foenix » 17 апр 2014, 18:20

посмотрела ссылку. П-ц ты дотошный. Молодец
R.id.team

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

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: как вызывать выполнение функций из собственного класса

Сообщение n0tb0dy » 17 апр 2014, 18:21

мне там хорошо живется :) вернее сказать удобно

мне удобно туда писать статьи используя Windows Live Writer, там и код вставлять удобно, и править удобно и скрины вставлять удобно.

Хотя может там где вы написали тоже удобный веб интерфейс... я обязательно посмотрю

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: как вызывать выполнение функций из собственного класса

Сообщение n0tb0dy » 17 апр 2014, 18:24

Foenix писал(а):посмотрела ссылку. П-ц ты дотошный. Молодец
просто привычка разбираться со всем до последнего уровня дискретности :)

поэтому уже месяц как мучаю тему жизненных циклов активностей, стека, задач, и тд и тп

спасибо что помогаете разобраться с этим делом

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: как вызывать выполнение функций из собственного класса

Сообщение altwin » 17 апр 2014, 18:30

n0tb0dy писал(а):мне там хорошо живется :) вернее сказать удобно

мне удобно туда писать статьи используя Windows Live Writer, там и код вставлять удобно, и править удобно и скрины вставлять удобно.

Хотя может там где вы написали тоже удобный веб интерфейс... я обязательно посмотрю
не не.. если дела так обстоят не стоит :) для меня удобно конечно vim, терминал и всякие статические генераторы, эта штука работает очень хорошо и уж точно в тысячи раз больше возможностей.. да и интегррованна с git, потому постить туда более чем удобно... Но пользователя привыкшего к blogspot может напугать, потмоу не нужно, чтобы желание не пропала.. всему свое время, как говорит Инна. Главно, что сама идея правльная, так действительно будет эффективнее :)

P.S. на самом деле очень многие программисты(если не все) создают в сети чисто для себя что -то вроде wiki page, на которой собирают шпаргалки, шаблоны и всякие полезности, потому правильным путем идете товарищ ;)
Изображение

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: как вызывать выполнение функций из собственного класса

Сообщение n0tb0dy » 18 апр 2014, 11:05

а может поясните мне еще смысл параметра запуска активности singleTop?

ведь ее экземпляр не может быть создан только если она находится на вершине текущей задачи, и ее пытаются запустить из текущей задачи

по существу какой смысл запускать активность из самой себя?

если активность с этим параметром запустить из другого приложения, то ее экземпляр все равно будет создан, в другой задаче

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: как вызывать выполнение функций из собственного класса

Сообщение altwin » 18 апр 2014, 11:18

n0tb0dy писал(а):а может поясните мне еще смысл параметра запуска активности singleTop?

ведь ее экземпляр не может быть создан только если она находится на вершине текущей задачи

по существу какой смысл запускать активность из самой себя?

если активность с этим параметром запустить из другого приложения, то ее экземпляр все равно будет создан, в другой задаче
если я правильно понимаю, когда вы возвращаетесь в активити, которая была объявленна, как singleTop из другой активити вызывая интент, срабатывает onCreate() (и далее по циклу) вместо требуемого вызова onNewIntent(), т.е. действительно создается новый инстанс, но методы интента не отрабатывают и передать данные например не получится(хотя хрен его знает я не пробывал их "насиловать" :)). А, если активити помеченная .как singleTop уже находится наверху стека - вызванна будет она, и интент не создастся. И чтобы это сработало нужно делать:
[syntax=java5]Intent myIntent = new Intent(getBaseContext(), MainActivity.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(myIntent);[/syntax]
Это как бы противоположно: android:launchMode="singleInstance" Т.е. тут подразумевается, что интент не будет создавать активити, а всегда будет вызывать уже существующую из стека. Тут кстати придется при переходе явно вызывать метод finish(), чтобы "убить" ту, с которой выполняется переход.
Это просто более явный способ управление поведением актвивити при их переключении.
Изображение

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: как вызывать выполнение функций из собственного класса

Сообщение n0tb0dy » 18 апр 2014, 11:57

спасибо

и еще один вопросик, где почитать о взаимосвязи процессов, приложений и задач?

или если можете, то расскажите вкратце сами?

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: как вызывать выполнение функций из собственного класса

Сообщение n0tb0dy » 18 апр 2014, 12:02

Просто в ходе экспериментов выяснил, что даже если приложение закрывается и уничтожается его последняя активность, его процесс все равно продолжает жить, ну по крайней мере какое-то время и при запуске приложения снова оно работает в процессе с прежним PID, хотя TaskID уже другой.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: как вызывать выполнение функций из собственного класса

Сообщение altwin » 18 апр 2014, 12:23

Тема комплексная и просто так это не расскажешь.

http://developer.android.com/intl/ru/gu ... reads.html ( ну и как бы для понимание нужны все разделы тут: http://developer.android.com/intl/ru/gu ... index.html )
ест хорошее видео: http://youtu.be/TkPiXRNee7A
Изображение

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: как вызывать выполнение функций из собственного класса

Сообщение altwin » 18 апр 2014, 12:32

n0tb0dy писал(а):Просто в ходе экспериментов выяснил, что даже если приложение закрывается и уничтожается его последняя активность, его процесс все равно продолжает жить, ну по крайней мере какое-то время и при запуске приложения снова оно работает в процессе с прежним PID, хотя TaskID уже другой.
именно этим и можно управлять с помощью singleInstance и singleTop, но вообще это редко когда нужно, просто потому, что никаких серьезных вычислений не происходит на довольно ограниченном устройстве, в activity обычно решаются довольно простые задачи -показать/скрыть/спросить/ответить... все остальное при необходимости делается уже нативными методами вообще без использования android framework.
Изображение

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: как вызывать выполнение функций из собственного класса

Сообщение n0tb0dy » 18 апр 2014, 14:02

спасибо большое... бум грызть гранит науки

Ответить