Size: a a a

Android Developers

2020 December 26

VT

Victor Tihonov in Android Developers
источник

S

Silent829 in Android Developers
А у меня вчера было +8) сейчас +3
источник

OR

O R in Android Developers
Всем привет.
Помогите разобраться с такой ситуацией:
На эмуляторе моё  приложение свёрнутым переживает запуски других приложений без проблем и остаётся в рабочем состоянии - если тапнуть по иконке, то оно открывается в том же состоянии, что и было свернуто - вьюмодель фрагмента хранит все данные как положено и сам фрагмент отображается нормально recyckerview отображает список из вьюмодель.
А вот на смартфоне по какой-то неведомой мне логике происходит следующее: по тапу приложение "всплывает", но судя по тому, что recyclerview на фрагменте пустой, значит вьюмодель фрагмента потеряла данные, а скорее всего была вообще создана заново. При инициализации вьюмодель берет данные из хелпера shared prefs (синглтон) и получается, что и хелпер был уничтожен системой, т.к. вьюмодель фрагмента берет из него не сохраненные данные, а временные - из полей хелпера.

Как такое вообще отловить и понять что происходит? Пытался дебажить, но при подключении смартфона приложение в свёрнутым состоянии живёт без проблем.
источник

OR

O R in Android Developers
Использую android navigation component и data binding.
источник

OR

O R in Android Developers
Ощущение, что на смартфоне именно в спящем режиме  отрабатывает какой-то сборщик мусора.
Если я сверну приложение и буду запускать другие, то в какой-то момент мое будет вытеснено из памяти вообще - по тапу оно запускается с нуля. А вот воспроизвести, чтобы оно "всплыло" именно на том фрагменте, что был при сворачивании, но с явной потерей вьюмодели и  синглтона хелпера, мне никак не удается.
источник

SG

Sergey Grieg in Android Developers
У тебя запускается сервис несколько раз
источник

SG

Sergey Grieg in Android Developers
Кто сказал, что его нельзя запустить более одного раза?
источник

SG

Sergey Grieg in Android Developers
onCreate да, но сам сервис может быть запущен сколько угодно раз
источник

SG

Sergey Grieg in Android Developers
Не путай жизненный цикл сервиса с самим сервисом
источник

SG

Sergey Grieg in Android Developers
onCreate — один из методов жизненного цикла, который (см. название) запускается при создании сервиса (но до onStartCommand)
источник

SG

Sergey Grieg in Android Developers
А сам сервис ты можешь запускать столько, сколько тебе нужно
источник

OP

Oleg Pchelkin in Android Developers
А где ты запускаешь сам сервис? И соответственно в какой момент останавливает?
источник

SG

Sergey Grieg in Android Developers
Добавь в вывод идентификатор потока, в котором крутится сервис
источник

SG

Sergey Grieg in Android Developers
Так хотя бы увидим один это сервис мозг имеет или два
источник

С

Сергей in Android Developers
Доброго дня. Есть составная вьюшка (Два textView + image) у которой 4 стейта: положения on, off и состояния enabled/disabled.
В ON и OFF разные картинки и root background. Disabled просто должен добавлять серый фильтр на всю view.
Как средствами андроида это красиво реализовать?
В идеале бы хотелось большой селектор, чтобы сделал buttonLayout.isChecked = true, а он сам дочерним вью проставил checked и себе background сменил, а при buttonLayout.enabled = false сделал себе tint=grey.
Но увы, у layout нет ни tint, ни checked (как и у image).
источник

С

Сергей in Android Developers
Сейчас вместо tint натягиваю frameLayout с background поверх "кнопки". А background и image меняю в коде ручками
источник

QH

Quantum Harmonizer in Android Developers
Сергей
Доброго дня. Есть составная вьюшка (Два textView + image) у которой 4 стейта: положения on, off и состояния enabled/disabled.
В ON и OFF разные картинки и root background. Disabled просто должен добавлять серый фильтр на всю view.
Как средствами андроида это красиво реализовать?
В идеале бы хотелось большой селектор, чтобы сделал buttonLayout.isChecked = true, а он сам дочерним вью проставил checked и себе background сменил, а при buttonLayout.enabled = false сделал себе tint=grey.
Но увы, у layout нет ни tint, ни checked (как и у image).
Checked у всех должен быть. Как и enabled, activated, etc
источник

С

Сергей in Android Developers
Quantum Harmonizer
Checked у всех должен быть. Как и enabled, activated, etc
Это уже что-то, а можно его как-то заставить наследоваться? Чтобы паренту поставил и все дети стали checked?
источник

QH

Quantum Harmonizer in Android Developers
backgroundTint ещё мб
источник

QH

Quantum Harmonizer in Android Developers
Сергей
Это уже что-то, а можно его как-то заставить наследоваться? Чтобы паренту поставил и все дети стали checked?
repeat(childCount) { getChildAt(it).set… }
источник