Ответ
Для возврата значения из Activity при навигации назад используйте setResult() перед вызовом finish().
Пример:
// В Activity, которая возвращает результат
val resultIntent = Intent().apply {
putExtra("key", "value")
}
setResult(Activity.RESULT_OK, resultIntent)
finish()
В вызывающей Activity:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK && requestCode == YOUR_REQUEST_CODE) {
val result = data?.getStringExtra("key")
}
}
Для нового Navigation Component (с ActivityResultLauncher):
val resultLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
val data = result.data?.getStringExtra("key")
}
}