169 похожих чатов

Гугл давненько выкатил упрощенную работу с activity result в виде

ActivityResultContract<I, O>
среди прочего там и упрощенная работа с разрешениями RequestPermission extends ActivityResultContract<String, Boolean>
в андроид доке предлагается уебанский пример как хендлить результаты - типа делаешь проперти в хосте (активити или фрагменте например) и ждешь там результат (O)
но прикол в том что проперти надо регистрировать раньше чем какая либо логика началась на экране - иначе крашится
в итоге выходит что этот метод нихуя не помогает - при возвращении к колбек в хосте всеравно есть проблема "а какую кнопку то нажали?"
может я чего то упускаю? или они просто ничего не решили этой новой апишкой?
т.е. как раньше я где то как то запоминал "какую кнопку нажали" так и сейчас всё тоже самое с этой апихой?

4 ответов

8 просмотров

По моему нормальное решение, у меня все хорошо работает. Походу вы, что-то не так делаете.

Konstantin-dmz9 Автор вопроса

я и не сказал что не работает

Я так делаю: Инициализация лончера и обработка результатов private val requestPermissionLauncher = registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { if (it["android.permission.READ_EXTERNAL_STORAGE"] == true && it["android.permission.WRITE_EXTERNAL_STORAGE"] == true) refreshData() } Запрос requestPermissionLauncher.launch(arrayOf(android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.READ_EXTERNAL_STORAGE)) Читабельность так себе, могу скрином кинуть, если что

Konstantin-dmz9 Автор вопроса

я вот позвонить хочу, у меня две кнопки А и Б надо бы проверить разрешения - окей - проверяю но в момент возврата, при удачной выдаче разрешения - надо сразу звонить, не ждать пока еще раз юзер нажмет. собсно - к моменту возврата в колбек - надо уже заранее знать "какую кнопку нажали", ну или превратив это в "какой то номер телефона". ну так и вопрос - эта новая апишка позволяет как то stateless гонять туда-сюда в интентах эту инфу а не запоминать/сериализовать это в хостах?

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
70
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Книга Юрова В.И пойдёт для обучения?
Botsman
24
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Люди добрые, помогите с идеями, потому что свои закончились. У клиента падает софтина в момент инициализации модуля OtlEventMonitor на RegisterWindowMessage('Gp/OtlTaskEvents/...
Михаил Усков
7
это разве не аналог jvm и той же запускаемой машины на python?
Digital Infinite
10
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
GridView fully ignored first parent(SizedBox), and take width from second parent(Container). How can I constrain GridView by first parent? Widget build(BuildContext context) {...
Hamster
1
Карта сайта