Size: a a a

Android Developers

2020 June 08

I

Ivan in Android Developers
Но это правильная реализация синглтона
источник

ES

Egor Sigolaev in Android Developers
Ivan
Но это правильная реализация синглтона
Понял, спасибо.
источник

I

Ivan in Android Developers
Egor Sigolaev
Понял, спасибо.
причем её можно еще оптимизировать в том плане, чтобы избежать захвата лока при каждом вызове.
По факту когда объект сконструирован уже, дальнейшие вызовы getInstance захватывают лок, хотя это уже не требуется (db уже не null)
источник

I

Ivan in Android Developers
что-то такое
db?.let { return it }
synchronized(LOCK) {
               db?.let { return it }
....
источник

OH

Oleksandr Hulak in Android Developers
Egor Sigolaev
А как такое может быть? Мы же вызываем его с одного потока. Тогда почему мы все методы билда (ретрофит билдер и т.д.) не заворачиваем в синхронайзд?
с бд работаем не в main потоке, а background. Поэтому есть смысл перестраховаться если от возможных ошибок в будущем. Когда либо ты завтыкал, либо кто-то из других разрабов на проекте. Во время тестирования коллизии не возникло, вылили в прод - а на нескольких девайсах воспроизвелось и креши понеслись. И потом выпускай хотфикс, парься)
Поэтому операции с бд синхронизируются
источник

ES

Egor Sigolaev in Android Developers
Oleksandr Hulak
с бд работаем не в main потоке, а background. Поэтому есть смысл перестраховаться если от возможных ошибок в будущем. Когда либо ты завтыкал, либо кто-то из других разрабов на проекте. Во время тестирования коллизии не возникло, вылили в прод - а на нескольких девайсах воспроизвелось и креши понеслись. И потом выпускай хотфикс, парься)
Поэтому операции с бд синхронизируются
Понял. Это связано только с записью и чтением? Что ещё нужно локать?
источник

AD

Aleksey D. in Android Developers
Ivan
Но это правильная реализация синглтона
правильная реализация синглтона:

object SingletonInstance или

class SingletonInstance {

 private static final INSTANCE = new SingletonInstance();

 private SingletonInstance() {}

 public SingletonInstance get() { return INSTANCE }
}
источник

ES

Egor Sigolaev in Android Developers
Aleksey D.
правильная реализация синглтона:

object SingletonInstance или

class SingletonInstance {

 private static final INSTANCE = new SingletonInstance();

 private SingletonInstance() {}

 public SingletonInstance get() { return INSTANCE }
}
Чёто мне кажется, что второй случай неверный.
источник

AD

Aleksey D. in Android Developers
Egor Sigolaev
Чёто мне кажется, что второй случай неверный.
почему?
источник

ES

Egor Sigolaev in Android Developers
Aleksey D.
почему?
Как взять инстанс? И если инстанс нулл, надо его создать.
источник

М

Мухамед in Android Developers
Кто нибудь знает как можно(благодаря чему) можно  создать эффект распада(как щелчек таноса)
источник

М

Мухамед in Android Developers
В плане анимации
источник

AD

Aleksey D. in Android Developers
Egor Sigolaev
Как взять инстанс? И если инстанс нулл, надо его создать.
там инициализация и get-метод
источник

I

Ivan in Android Developers
Aleksey D.
там инициализация и get-метод
а context куда прокидывать? Он нужен для создания.
источник

AD

Aleksey D. in Android Developers
Ivan
а context куда прокидывать? Он нужен для создания.
создавать «синглтоны» в классе-приложении
источник

k

k1ceargy in Android Developers
ребят, а когда класслодер создаешь и указываешь в конструкторе PathClassLoader все поля, норм что DexPathList пустой?
источник

I

Ivan in Android Developers
Aleksey D.
создавать «синглтоны» в классе-приложении
я имею в виду куда его передать если конструктор приватный.
В вашем примере.
источник

OH

Oleksandr Hulak in Android Developers
Egor Sigolaev
Понял. Это связано только с записью и чтением? Что ещё нужно локать?
не не, в твоём случае тебе больше локать не надо) этот лок чисто для инициализации DB. Дальше про thread safety не парься, Room превратит всё в транзакции и позаботится об этом.
источник

AD

Aleksey D. in Android Developers
Ivan
я имею в виду куда его передать если конструктор приватный.
В вашем примере.
в моём примере синглтон
если нужна зависимость с контекстом - через нестатическое поле в классе приложения
источник

А

Александр in Android Developers
Какие люди
источник