Murat
Всем здравствуйте. Кто может подсказать как избежать множественного открытия Activity по кнопке через onClickListener?
Murat
То есть я нажимаю быстро на кнопку, а он 2 раза один и тот же экран открывает
Murat
Я забыл убрать)0))00)
Shveps
Singletop
Назарий
Назарий
ставь вместо обычного листенера
Murat
Спасибо))
Shveps
android:launchMode="singleTop" ,в манифесте поставь у активити
Murat
Я кстати видел такую штуку
Назарий
android:launchMode="singleTop" ,в манифесте поставь у активити
я бы назвал костылём. иногда нужно хранить одинаковые активити по несколько раз в стэке
Shveps
myIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP )
Murat
Спасибо большое за помощь)
Vlad
Подскажите как лучше реализовать. У меня есть List в адаптере с объектами. Периодически сервер может изменять содержимое объекта, удалять объекты и добавлять их. Мне нужно все изменения показывать в RecyclerView. Как правильно отслеживать изменения списка и объектов? В голову пришло две идеи: заменять старый список новым или циклом проверять каждое поле. Есть ли в котлине инструмент для проведения таких операций? Нахождения отличающихся в списке элементов
Oleksii
DiffUtils
Vlad
Периодически его опрашивать самому или через кнопку
Oleksii
DiffUtils это инструмент который тебе позволяет научить твой Адаптер понимать какие объекты удалились, добавились или сместились, красиво и анимированно, но если отвечать на вопрос как часто нужно обновлять этот список, это тебе нужно обратится на свой Бекенд, если у тебя реализация на Веб сокетах с беком, то считай все у тебя в порядке, и Бек тебе сам скажет когда нужно обновить список с данными, а вот если чистый Рест, то ты должен самостоятельно опрашивать Бек 1 раз в n - seconds и просто обновлять список.
Oleksii
Ребята подскажите лучше вопросу который я оставлял выше))) Возможно у кого-то опыт был)))
Oleksii
DrawarLayout мешать не будет или это норм практика его дизейблить?
Oleksii
а потом когда нужно включать
Shveps
Я обычно флоу аутентификации через активити отдельным модулем делаю. Но можно его скрыть для этого случая
Shveps
Как лучше - однозначного ответа не дам
Turalllb
Вот интересно будет ли в jetpack compose нормальная работа с фокусами, а то во Вью она вообще не готова работать на теликах без мучений
Artemii
Ребят подскажите туториалы для тестирования мобильных приложений, ресурсы, сейчас срочно надо разобраться с этим
Vega
Всем привет. Такой вопросик. Может кто сталкивался. Я открываю программно ПДФ, сохранненное в загрузки, с помощью флага new task, приложение переходит на новую таску и сразу возвращается обратно. Т.е. ПДФ вместо открытия почему-то прыгает обратно. Я проверял, ПДФ рабочая и открывается через файловую систем. В чем может быть трабла? Куда копать?
Vega
Интент пуляешь? А что в логах?
Канешн. В логах чисто, ща перепроверю ещё
Александр
Работаю над приложение (java), нужно добавить функцию "избранного". Чтобы при повторном запуске, главный экран сразу же заполнялся "избранным". Через что и как лучше сделать?
Shveps
Mike
А если айдишников будет 100500?
А будет ли? Это очень упорный пользователь должен быть.
Vega
Интент пуляешь? А что в логах?
В аппке пусто. В системных нашел вот E/DisplayData: openFd: java.io.FileNotFoundException: open failed: ENOENT (No such file or directory) Похоже я генерю как-то неправильно его)
Shveps
Канешн. В логах чисто, ща перепроверю ещё
А что ты интенту передаешь тогда?
Vega
Генерю вот таким образом из downloads папочки. Наверное здесь косяк. На счёт прав, оно разве не должно падать, если прав нет?)
Vega
Отключил права, перезапрашивается у меня. Все с правами ок)
Vega
Беру свои слова обратно) Поменял немного код и получил вот такое) openFd: java.io.FileNotFoundException: open failed: EACCES (Permission denied)
Shveps
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); попробуй добавить
Vega
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); попробуй добавить
Пробовал, не помогло Но ща нашел вот такое
Shveps
Покажи, как uri выглядит
Vega
У меня пиксель, но проект компайл и таргет 28
Dug
У меня пиксель, но проект компайл и таргет 28
Этот флаг с 28 вроде бы нужен уже, нет?
Vega
Этот флаг с 28 вроде бы нужен уже, нет?
Не, на 28 не распознает атрибут такой
Vega
Покажи, как uri выглядит
/storage/emulated/0/Download/petProjectApp/236/____________-10929852.pdf
Shveps
Это path
Vega
Так это не uri)
Сек, пересобираю чтобы показать) Там просто сразу в интент прокидввался Ури из пасса
Vega
Это path
Во file:///storage/emulated/0/Download/petProjectApp/236/____________-10929852.pdf
Vega
Путь вроде валидный НО смущает название исключения openFd: java.io.FileNotFoundException: open failed: EACCES (Permission denied)
Shveps
https://developer.android.com/reference/androidx/core/content/FileProvider#GetUri
Vega
Путь как раз невалидный
Т.е. напрямую нельзя и нужно через контет провайдера кидать?
Shveps
Да
Shveps
Не забудь дать пермишн для uri, а то другой эксепшн получишь
Vega
Не забудь дать пермишн для uri, а то другой эксепшн получишь
Ага, это добавил изначально. Заработало, спасибо большое) Файловая система моя слабая тема всегда была..
Vega
https://developer.android.com/reference/androidx/core/content/FileProvider#GetUri
Но кстати я сделал немного не так, как тут описано. Я второй раз файл не создавал. Зачем кстати промежуточный файл делается?
Vega
Более того, со вторым файлом у меня не завелось почему-то))
Shveps
Второй - собственно сам файл в этой папке
Vega
Интересно, в меня вот так завелось
Vega
Shveps
Что такое SubPath?
Vega
Что такое SubPath?
Путь файла внутри downloads + file name
Vega
И далее будет ещё сложнее работать с файлами на андроид😂
Наверное речь про то, что в будущем будет сложнее работать с файловой системой, тк задачи будут сложнее. Но пока на горизонте не предвидится такие задачи (:
Shveps
Путь файла внутри downloads + file name
Получается полный путь)