Получить результат Activity со сторонней библиотеки [Android, Kotlin]
Т.к. метод onActivityResult является устаревшим, пытаюсь разобраться с его приемником. Ситуация такая, в сторонней библиотеке, внутри, после исполнения нужного мне метода, используется старая версия отправки интента
activity.startActivityForResult(intent, 100);
В офиц. документации приводится следующий код для получения и отправки интента, у коллбека вызывается метод launch(), но в моём случае, как уже сказал выше используется startActivityForResult,
val startForResult = registerForActivityResult(StartActivityForResult()) { result: ActivityResult ->
if (result.resultCode == Activity.RESULT_OK) {
val intent = result.data
// Handle the Intent
}
}
// ...
override fun onCreate(savedInstanceState: Bundle) {
val startButton = findViewById(R.id.start_button)
startButton.setOnClickListener {
// Use the Kotlin extension in activity-ktx
// passing it the Intent you want to start
startForResult.launch(Intent(this, ResultProducingActivity::class.java))
}
}
Использую следующий код в MainActivity в onCreate():
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
onActivityResult(100, result)
}
Результат не отлавливается, не могу понять как правильно нужно получить результат отправленный с помощью старой версией кода по новому принципу работы, и возможно ли это вообще
Ответы (1 шт):
Новая схема не заменяет старую, она разработана поверх неё. Вы можете ловить результат так же как и раньше в onActivityResult() не регистрируя для этого колбеки. Просто придётся смириться с предупреждением об устаревшем методе до тех пор, пока не будет обновлена/заменена библиотека.