Activity Result API. Часть 1. Практическое использование

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 67

  • @AndroidBroadcast
    @AndroidBroadcast  3 года назад +5

    💰 Поддержать проект bit.ly/3sratqQ
    📰 Android Broadcast Telegram ttttt.me/android_broadcast
    🔗 Блог о жизни канала boosty.to/androidbroadcast

  • @СергейСмирнов-н1в
    @СергейСмирнов-н1в 3 года назад +15

    Очень полезно и лаконично! Спасибо за твой труд

  • @dmytrokuiko8855
    @dmytrokuiko8855 3 года назад +4

    Спасибо за видео! Коммент не только для благодарности, но и для алгоритма ютуба ;)

  • @SmemsMusic
    @SmemsMusic 3 года назад +1

    Благодарю за видео. Надо попробовать на своих проектах.

  • @thetimur1872
    @thetimur1872 7 месяцев назад +1

    спасмбо !

  • @KIRILLINGUSS21
    @KIRILLINGUSS21 3 года назад +1

    Очень круто спасибо. Сейчас попробую на нашем приложении!

  • @alexandertaran6199
    @alexandertaran6199 3 года назад +1

    Спасибо за видео! Отличное api, тот редкий случай, когда гугл сделал что-то действительно удобное.

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад +4

      Скорее обертка над тем что изначально сделали неудобным. Идея плодить кучу Callback в стандартных компонентах приложения ужасная

  • @AsTaR75256
    @AsTaR75256 3 года назад

    Отличный выпуск. Все хотел разобраться с новым подходом, да вот руки не доходили)
    А тут все разжёвано как надо)
    Спасибо Кирилл.

  • @atreides07
    @atreides07 3 года назад +5

    Спасибо за видео, но есть небольшое дополнение: Если не подключите также androidx.fragment:fragment-ktx:1.3.1, то в некоторых кейсах будет ошибка "java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode"

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Ага, важное замечание. Я уже забыл что всегда все зависимости подключаю руками

    • @card713
      @card713 3 года назад +1

      СПАСИБО ТЕБЕ, ДОБРЫЙ ЧЕЛОВЕК! Я второй день с этой херней сижу, не понимаю, почему прилетает такой requestcode

  • @user-sankarsana
    @user-sankarsana 3 года назад +1

    Великолепно! Спасибо.

  • @sergeyo.1512
    @sergeyo.1512 3 года назад

    Спасибо. Формат классный, но что касается темы , плюс вижу только в выносе в сторонние классы, но количество кода увеличилось.

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад +1

      В чем именно оно увеличилось? Раньше оно было рассредоточено по куче мест, а вот сейчас четко описывается все в одном месте + легко вынести за пределы. Гибкость не может обеспечится меньшим количеством кода, а вот её результат позволяет масштабировать приложение и разделять ответственность

  • @konstantinpetrenko199
    @konstantinpetrenko199 3 года назад

    Спасибо

  • @d.mertsalov
    @d.mertsalov 3 года назад

    Спасибо!

  • @SuperMarkwel
    @SuperMarkwel 3 года назад

    Топчик!

  • @ВиталийДорофеев-е4и

    Спасибо. Кратко и по делу. А кстати какой контракт используется для работы с смс?

    • @AndroidBroadcast
      @AndroidBroadcast  Год назад

      Все контракты в Jetpack можно найти в подклассах в доках по d.android.com/reference/androidx/activity/result/contract/ActivityResultContract

  • @sergeykharuk5614
    @sergeykharuk5614 3 года назад

    полезно) спасибо)

  • @xxxDigiteXxxx
    @xxxDigiteXxxx 3 года назад +1

    В activity-ktx есть экстеншены ActivityResultLauncher.launch() ActivityResultLauncher.launch() для того чтобы не передавать null

  • @badalianvyacheslav7370
    @badalianvyacheslav7370 3 года назад

    TakeAudio достаточно легко создал. А вот ДНД, АдминМод, Батарею и другие системные интенты очень хотелось бы все же видеть универсально. Там на каждой ОС куча подводных камней

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Разве они тоже имеют отношения к Activity Result API ?

  • @ggggdddnjj
    @ggggdddnjj 2 года назад

    15:07 А откуда взялась константа EXTRA_MESSAGE ? где она находится ?

    • @AndroidBroadcast
      @AndroidBroadcast  2 года назад

      Это строковая константа, которая объявлена в приложении для передачи данных

  • @zhanyshmasirov4611
    @zhanyshmasirov4611 3 года назад

    Спасибо , а вторая часть когда будет?

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Уже есть на канале ruclips.net/video/Z9YKPwuy2Kc/видео.html

  • @andreychesnovitskiy5350
    @andreychesnovitskiy5350 3 года назад

    А в коллбэке для пермишенов как-то можно будет понять, что юзер выбрал "не спрашивать больше"?

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Нет, там только приходит получено разрешение или нет. Делать все проверки касательно "не спрашивать больше" придется самостоятельно

  • @БахтиярТутенов-щ8ц
    @БахтиярТутенов-щ8ц 3 года назад

    А как у вас скобки такие разноцветные?) Это плагин какой то или студия умеет так выделять?

  • @alexander-2133
    @alexander-2133 3 года назад

    а как настроить скобки в блоке разными цветами? полезная штука)

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад +1

      plugins.jetbrains.com/plugin/10080-rainbow-brackets

  • @scraplesh
    @scraplesh 3 года назад

    Если честно, я подумал, что на заставке ты в смирительной рубашке стоишь 😬

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Могло бы получиться интересно

  • @andreyliashuk2516
    @andreyliashuk2516 3 года назад

    А что произойдет, если во время выбора картинки система закроет нашу активити? Сработает ли колбек в новой активити?

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад +1

      Подробности такого поведения будут во второй части

  • @bolnoi8
    @bolnoi8 3 года назад

    Жалко что register нельзя вызывать после создания фрагмента, описание коллбека в конкретном кейсе явно покрасивее будет. Да и с именами придётся немного повозится, если больше одного фото на экране, то будет pickPhotoForFirstContainer, pickPhotoForSecondContainer.
    Ну и тупо получается: ResultLauncher называется requestCameraPermissions, а передавать какие именно пермишены надо запросить, всё равно приходится при запуске.

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Почему нельзя? Это же обычный метод, который позволяет зарегистрировать Callback в любое время

    • @bolnoi8
      @bolnoi8 3 года назад

      @@AndroidBroadcast Увы, но нет IllegalStateException: Fragment is attempting to registerForActivityResult after being created. Fragments must call registerForActivityResult() before they are created (i.e. initialization, onAttach(), or onCreate()).

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Очень странно с чем это связано, надо будет посмотреть. Спасибо

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Можно код Fragment где воспроизводится проблема?

    • @bolnoi8
      @bolnoi8 3 года назад

      @@AndroidBroadcast достаточно в onResume вызвать register. Если вызывать в onCreated, то ещё будет работать нормально. Прчём сам register отрабатывает нормально, падает при launch
      override fun onResume() {
      super.onResume()
      registerForActivityResult(ActivityResultContracts.GetContent()) {
      }.launch(MIMETYPE_IMAGES)
      }

  • @buddaset4226
    @buddaset4226 3 года назад

    Жаль про рантайм разрешения мало рассказал.

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Так а что там рассказывать? Я же показал как их теперь запрашивать

    • @buddaset4226
      @buddaset4226 3 года назад

      @@AndroidBroadcast Например как выстраивать правильно структуру с запросом permissions с диалоговыми окнами.(куда их можно попрятать, чтобы не было так грамостко) В какой момент срабатывает shouldShowRequestPrmissionRationale и как правильно его зациклить с сообщением разрешения. (а главное где, в колбеке ответа или перед запросом разрешения)

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Так это уже не про Activity Result API, а про работу с разрешениями. Тема выходит за рамки видео

  • @Chernov1984
    @Chernov1984 3 года назад

    +

  • @АлексейКоваленко-н2ч
    @АлексейКоваленко-н2ч 11 месяцев назад

    Ничего не понимаю 😢😢😢 ну вы поняли, что я чайник, да?😘

  • @НикитаКуперштейн
    @НикитаКуперштейн 3 года назад

    А как поставить два лайка?

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад +1

      Бери телефон соседа/соседки!

  • @handleftman
    @handleftman 3 года назад

    17:18 ???

    • @indrih
      @indrih 3 года назад

      Что?

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Кусок был вырезан, этот хвостик тоже скоро пропадет

  • @hesher2301
    @hesher2301 3 года назад

    Ещё эта штука спасает при process death

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад +1

      В эту часть еще не копал, но однозначно хотел посмотреть. Помню свои страдания по этим проблемам и куче костылей вокруг. Расскажу об этом во вторйо части.