Алексей
this @orcDamnar
а что будет в INSTANCE если к нему будет 2 обращения из разных потоков до того как оно проинициализируется? ведь вызов конструктора не атомарная операция.
Himars
в синхронизированном getInstance вместо простого безопасного static final SchedulerProvider INSTANCE = new SchedulerProvider()
Так синглтон будет инициализирован при загрузке класса Мне кажеться лучше использовать double-checked locking
Mike
когда он нужен будет
т. е. примерно тогда, когда загрузится его класс
Mike
По запросу?
класс тоже загружается по запросу
Himars
класс тоже загружается по запросу
ушел гуглить момент загрузки класса
Влад
та не, вроде должно быть достаточно
Можете что то посоветовать или что то ещё попробовать в моем случае?
Mike
Можете что то посоветовать или что то ещё попробовать в моем случае?
Можно создать предельно простой foreground service, который, например, каждые 10 секунд выводит что-нибудь в лог, и посмотреть, сколько он продержится. Вообще, сейчас стало очень проблематично работать в бэкграунде...
Ivansuper
А если нужна ленивая инициализация?
А в чем мулька? Ты туда пойдешь за инстансом все равно
Mike
А если нужна ленивая инициализация?
Насколько ленивая? Какой смысл загружать класс и не инициализировать экземпляр?
Mike
дороже верифицировать и скомпилировать твой метод getInstance, чем создать экземпляр уже загруженного класса
Himars
класс тоже загружается по запросу
Нашел только различие в том, что: psf: если в синглтоне есть статик поля/методы, то при первом их использовании синглтон будет инициализирован. Тоесть будет нарушен Lazy initialization
Mike
Нашел только различие в том, что: psf: если в синглтоне есть статик поля/методы, то при первом их использовании синглтон будет инициализирован. Тоесть будет нарушен Lazy initialization
да, если спровоцировать загрузку класса синглтона посредством get/set static, invokestatic или class literal, то экземпляр создастся. Но, во-первых, это дичь,
Ivansuper
На практике получается так, что сама система загрузки классов вам будет служить ленивой инициализацией синглтона
Ivansuper
Как только пойдете его забирать — статик поле наполнится инстансом класса
Влад
Можно создать предельно простой foreground service, который, например, каждые 10 секунд выводит что-нибудь в лог, и посмотреть, сколько он продержится. Вообще, сейчас стало очень проблематично работать в бэкграунде...
Если телефон подключен к ПК для снятия логов, то сервис живёт часами и в логе и датчик ускорение инфу кидает и инкрементация идёт как должно
Ivansuper
Именно! Да ещё и потокобезопасной.
Единственный нюанс по тред сейфети — на сколько помню, оно будет потокобезопасно в рамках одного ClassLoader
Ivansuper
Поправь если не прав
Алексей
да, собственно, в данном случае вообще хз зачем так реализовали...
Mike
Единственный нюанс по тред сейфети — на сколько помню, оно будет потокобезопасно в рамках одного ClassLoader
в рамках разных лоадеров будут и разные классы, и разные экземпляры, но это очень редкая ситуация
Ivansuper
Тоже верно
Anonymous
Anonymous
Anonymous
как так происходит?
Ruslan
эм
Anonymous
второй лог вызывается первым
Mike
в каком порядке написано, в таком и выполняется
Anonymous
onMessageEvent до конца не выполняется, пока не выполниться loadMap ?
Mike
вызвать метод == выполнить метод, целиком, от начала до конца
Ivansuper
Вспоминается "вопиющее незнание статического инициализатора"
Anonymous
Есть два фрагмента и навигейшнвью. При старте приложения открывается первый фрагмент. в меню кликаю по второму пункту - открывается второй фрагмент, кликаю еще раз по второму пункту - по коду выполняется запуск первого фрагмент, затем второго, на экране телефона открывается только второй фрагмент. почему так?
Григорий
Недавно познакомился с бандлом. И сразу обратил внимание, что в методе onCreate есть переменная типа Bundle. Получается я ее могу использовать для работы с данными?
Григорий
прикольно))
Григорий
Теперь понятно зачем она там
Unat
Более того, не стоит передавать данные во фрагмент иным способом
Сергій
Теперь понятно зачем она там
наверное стоит почитать офиц туториалы и документацию )
Mike
Недавно познакомился с бандлом. И сразу обратил внимание, что в методе onCreate есть переменная типа Bundle. Получается я ее могу использовать для работы с данными?
Слева от метода есть кружочек, по клику на который тебя перекинет к методу из суперкласса. Над ним есть javadoc, который исчерпывающе объясняет, что и в каких случаях этот бандл в себе несёт.
Григорий
да, думаю будет полезно
Григорий
ок, спасибо
Григорий
Более того, не стоит передавать данные во фрагмент иным способом
Класс, а я по другому делал. Буду теперь знать что в моем распоряжении окаывается уже имеется готовый бандл
Unat
Там есть ещё незаметная приписка о том, что Bundle из setArguments у фрагмента не уничтожается при пересоздании.
Unat
И в целом полно нюансов
Григорий
он имеется не просто так, читай документацию
ну доки мне пока чуть сложнее чем статьи для новичков. Но обязательно почитаю
Mike
ну доки мне пока чуть сложнее чем статьи для новичков. Но обязательно почитаю
ну поищи статьи для новичков про активити и фрагменты
Unat
ну поищи статьи для новичков про активити и фрагменты
а вот они бывают сомнительного качества.
Mike
а вот они бывают сомнительного качества.
да, но вопросы совсем уж дикие, стоит почитать хоть что-нибудь
Unat
Документацию
Григорий
ну поищи статьи для новичков про активити и фрагменты
да что почитать не проблема. Я лишь узнать правильно ли я понял. Оказывается правильно. Просто я только что открытие для себя сделал, так как новичок. Еслесственно вопросы могут для вас казаться дикими
Unat
Можно статьи, но параллельно по каждому используемому методу все-равно надо читать доку
Григорий
правильно)
Vlad
https://storage.googleapis.com/spec-host-backup/mio-design%2Fassets%2F0B8wSqcLwbhFudWM2QkJidjVucU0%2Fhierarchicaltransitions-reply-1a.mp4 как сделать такое открытие списка?
Alexander
Shared Elements Transition
Vlad
этож фрагмент
Привет) Спасибо.
Alexander
очень аккуратно сделанный
Alexander
или фрагмент тот же самый
Alexander
или даже просто вьюшка
Mike
да, бред
Mike
где угодно меджу процессами, тут бандл только косвенно
Mike
потому что сам по себе адаптер ты берёшь и создаёшь: new SomeAdapter. Никакого IPC тут не вижу.
Mike
И что, конструктор присутствует в трейсе?
Arsen
TooMuchИнформацииException
Arsen
через студию ловишь?
Arsen
бывает, когда процесс умирает, т.е. когда жмешь ок в диалоге с крешем
Arsen
в логах же по процессу фильтруется
Arsen
из выпадающег осписка
Arsen
ребут?