Alex
А что это
братан, не смотри больше аниме. иначе будет пубг лагать
<Обойдёшься😊/>
А что это
Если не создаёшь, то ты не туда попал...
Freeman
Я создал свою игру
Олександр
А что это
повторю, здесь тебе не помогут, здесь разработка приложений. а не техническая поддержка андроид-юзеров
Freeman
На компе я создал игру при помощи js когда захожу через телефон моя игра вылетает
Олександр
2
блин, ты же сказал что не разрабатывал. Можешь нормально сформулировать вопрос?
Albert
Капец. Ваш запрос заставил меня задуматься над следующим: а создалась ли действительно бд? Если да, то где она лежит? Иначе какой я разработчик, если на такие вопросы не могу ответить. И тут начался цирк, вызванный абсолютной неопытностью в системе андроид. Сперва просто так начал искать свою бд через стандартный файловый менеджер. Потом мне брат подсказал, что нужны рут права. Пытался параллельно выяснить можно ли посмотреть папку с моим приложением без рут прав. Пытался через дебаггер посмотреть, что происходит, потом гугление привело меня к adb. С ним у меня ничего не получилось, может опыта или смекалки не хватило. Пришлось делать рут права. А у сяоми это ещё отдельный танец с бубном и хулахупом. Какие-то анлокеры надо сделать, спросив разрешение у сяоми. Говорят, что разрешение кому-то надо ждать от трёх дней, до месяца, если что-то пойдет не так. Слава Богу, у меня все получилось сразу. Потом пришлось узнавать про TRWP, про recovery, про magisk, про SU. В общем, все сделал. А найти эту папку data, где хранится мое приложение так и не нашел🤦‍♂. Скачал тотал командер, потыкал пальцем и случайно, наконц-таки, нашел папку со своей программой! И там, да, действительно есть созданная мною бд. И там ещё лежали 3 других файла с расширением rw... Параллельно я нашел какую папку, у которой название такое же как у моей программы, только ещё в конце приписано &quot;-2&quot;. Это ещё выяснить надо, наверное. Но факт в том, что бд создано. То есть класс который расширяет опенХэлпер отрабатывает. Но так почему же не выходит никаких исключений, если я намеренно делаю ошибки в коде, когда вызываю execSQL ()? Почему листВью не отображает содержимое, хотя все сделал как написано в оф документации?
Проблема решилась!!! Дело все в моей невнимательности. Дело в том, что я думал, что когда через дивайс запускаешь программу из АС, я думал, что предыдущая программа удаляется... Может она удаляется, но не полностью и бд остаётся. А когда бд остаётся, то мой код onCreate () просто не отрабатывался...потратил больше суток, чтобы это понять. Ребята, анализируете свои действия, чтобы избежать такого
Anonymous
Господа подскажите оптимальное решение которым пользуетесь. Хочу сделать так что бы при добавлении новости на сайт, в приложение приходило уведомление ( заголовок + картинка если возможно). Спасибо
Nikolai
FCM
Олександр
На компе я создал игру при помощи js когда захожу через телефон моя игра вылетает
знач, ты для создания использовал какой-то js framework. Честно, лучше поищи специализированные форумы по этому фреймворку, там скорее получишь помощь. Здесь абсолютное большинство на java + kotlin пишет приложения
Anonymous
FCM
Firebase?
Nikolai
Да
Anonymous
а сайт твой?
Да, хочу во время добавления в бекенде отпоавить уведомления всем устройствам
Anonymous
Да
Спасибо) а есть еще варианты? Вы FCM используете?
Олександр
Да, хочу во время добавления в бекенде отпоавить уведомления всем устройствам
тогда да, создать topic для fcm, подписывать на него устройства и триггерить
Egor
Ребят, привет. Кто может объяснить, почему функция создания базы данных (Room) является synchronized? Чтобы последовательно протолкнуть результат выполнения создании базы?
Egor
а как она выглядит? Функция
https://github.com/EgorSigolaev/CryptoApp/blob/master/app/src/main/java/com/test/cryptoapp/Database/AppDatabase.kt
Egor
Метод getInstance
Ivan
чтобы не допустить создания двух экземпляров
Egor
чтобы не допустить создания двух экземпляров
Я не про синглтон, а про synchronized(LOCK). Зачем это?
Artem
🥴
Egor
Я просто сейчас читаю про потоки. Вот стал вопрос.
Ivan
Я не про синглтон, а про synchronized(LOCK). Зачем это?
если два потока одновременно вызовут функцию, то есть шанс два раза сконструировать объект
Ivan
synchronized защищает от одновременного выполнения блока кода разными потоками
Egor
если два потока одновременно вызовут функцию, то есть шанс два раза сконструировать объект
А как такое может быть? Мы же вызываем его с одного потока. Тогда почему мы все методы билда (ретрофит билдер и т.д.) не заворачиваем в синхронайзд?
Ivan
Но это правильная реализация синглтона
Ivan
Понял, спасибо.
причем её можно еще оптимизировать в том плане, чтобы избежать захвата лока при каждом вызове. По факту когда объект сконструирован уже, дальнейшие вызовы getInstance захватывают лок, хотя это уже не требуется (db уже не null)
Ivan
что-то такое db?.let { return it } synchronized(LOCK) { db?.let { return it } ....
Олександр
А как такое может быть? Мы же вызываем его с одного потока. Тогда почему мы все методы билда (ретрофит билдер и т.д.) не заворачиваем в синхронайзд?
с бд работаем не в main потоке, а background. Поэтому есть смысл перестраховаться если от возможных ошибок в будущем. Когда либо ты завтыкал, либо кто-то из других разрабов на проекте. Во время тестирования коллизии не возникло, вылили в прод - а на нескольких девайсах воспроизвелось и креши понеслись. И потом выпускай хотфикс, парься) Поэтому операции с бд синхронизируются
Aleksey
Но это правильная реализация синглтона
правильная реализация синглтона: object SingletonInstance или class SingletonInstance { private static final INSTANCE = new SingletonInstance(); private SingletonInstance() {} public SingletonInstance get() { return INSTANCE } }
Egor
почему?
Как взять инстанс? И если инстанс нулл, надо его создать.
⚡️Мухамед
Кто нибудь знает как можно(благодаря чему) можно создать эффект распада(как щелчек таноса)
⚡️Мухамед
В плане анимации
Ivan
там инициализация и get-метод
а context куда прокидывать? Он нужен для создания.
Aleksey
а context куда прокидывать? Он нужен для создания.
создавать &#171;синглтоны&#187; в классе-приложении
Anonymous
ребят, а когда класслодер создаешь и указываешь в конструкторе PathClassLoader все поля, норм что DexPathList пустой?
Ivan
создавать &#171;синглтоны&#187; в классе-приложении
я имею в виду куда его передать если конструктор приватный. В вашем примере.
Олександр
Понял. Это связано только с записью и чтением? Что ещё нужно локать?
не не, в твоём случае тебе больше локать не надо) этот лок чисто для инициализации DB. Дальше про thread safety не парься, Room превратит всё в транзакции и позаботится об этом.
Aleksey
я имею в виду куда его передать если конструктор приватный. В вашем примере.
в моём примере синглтон если нужна зависимость с контекстом - через нестатическое поле в классе приложения
Аλександр
Какие люди
Аλександр
Hey
Egor
там инициализация и get-метод
Гет метод не статик
Egor
то, что связано с потенциально многопоточным доступом
А рум под капотом у себя защищает повторное создание базы?
Aleksey
Гет метод не статик
да, ошибнулся, надо модификатор статика к методу добавить
Kanat
Здравствуйте, не знаете ли как корвертировать jks file на keystore file
Kanat
Да
Kanat
Запарился уже с jks
Kanat
нужен release sha для firebase
Impossible
Запарился уже с jks
keytool.exe -list -v -keystore &quot;C:\Key.jks&quot; -alias &quot;Key&quot; -storepass &quot;123&quot; -keypass &quot;123&quot;
Vitalii
Делал элементы в Constrain Layout, было очень удобно настраивать компоненты прилипанием к стенкам, загнал компоненты в Scroll View -&gt; Linear Layout и теперь эта функция отсутсвует, есть какое-то решение чтобы вернуть прилипание?
Тони
Друзья, подскажите, у объекта есть конструктор, в котором есть Асинхронные методы. Какой самый адекватный способ узнать, что все методы объекта выполнились?
Олександр
Делал элементы в Constrain Layout, было очень удобно настраивать компоненты прилипанием к стенкам, загнал компоненты в Scroll View -&gt; Linear Layout и теперь эта функция отсутсвует, есть какое-то решение чтобы вернуть прилипание?
У каждого вида лейаута свои правила разметки, следовательно почему бы констрейнты работали в лайниаре.. Очевидно, будут работать только в констрейнт лейауте. Зачем лайниар?
Тони
очень зависит от реализации, но самый простой - убрать их оттуда
Есть мысль использовать ReplySubject, что думаешь?
Leon
Я извиняюсь, но мне интересно, здесь есть люди, которые зарабатывают на фрилансе, нативной андроид разработки?
Aleksey
Есть мысль использовать ReplySubject, что думаешь?
а какая задача-то решается? все равно как-то не очень в контструкторе это делать)
Vadim
Привет, у меня вопрос по rxJava, если не сюда то заранее извиняюсь, но чата более подходящего не нашел. Нужно написать цепочку по отправки данных на сервер, но пачками по n. После успешной отправки надо удалить то, что отправил и получить новую партию. И так пока все не отправятся Подскажите какие операторы для этого надо использовать, а то я repeat&#39;ах не разбираюсь Заранее благодарю
Тони
а какая задача-то решается? все равно как-то не очень в контструкторе это делать)
нужно отследить что библиотека про инициализирвалась. Ну например есть основной класс в либе, там есть пару основных методов. Мне нужно как-то отследить что методы эти выполнились
Тони
а зачем это делать асинхронно?
Достаточно трудозатратные операции в этих методах
Vadim
flatMapFlowable { list -&gt; // разбиваешь список на группы Flowable.fromIterable(groups) }
list большой, не хочется его весь из бд получать
Aleksey
Достаточно трудозатратные операции в этих методах
я бы сделал что-то вроде LibraryUtil.init(): Future/Completable тогда
Vitalii
MainActivity - https://pastebin.com/U10ALuN7 Product.java - https://pastebin.com/jKNXiXyg Помогите решить проблему пожалуйста