
기존에는 액티비티에서 결과를 받아올 때 startActivityForResult() 와 onActivityResult() 를 사용했지만 deprecated 되었다

'startActivityForResult(Intent!, Int): Unit' is deprecated. Deprecated in Java
Activity 클래스에서 사용할 수 있지만, AndroidX Activity와 Fragment에 도입된 Activity Result API 사용을 적극 권장한다고 한다
📌 MainActivity <-> SecondActivity 쌍방향으로 데이터 전달 가능
registerForActivityResult()는 ActivityResultContract 및 ActivityResultCallback을 가져와서 다른 활동을 실행하는 데 사용할 ActivityResultLauncher를 반환한다
   val startForResult = registerForActivityResult(
        ActivityResultContracts.StartActivityForResult()
    ) { result: ActivityResult ->
        if (result.resultCode == RESULT_OK) {
            val str = result.data?.getStringExtra("str")!!
            Toast.makeText(context, Main 으로 돌아옴, Toast.LENGTH_SHORT).show()
           
        }
    }
class MainActivity : AppCompatActivity(){
	private lateinit var binding: ActivityMainBinding
	 override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater).also {
            setContentView(it.root)
        }
        
         with(binding){
            btnSecond.setOnClickListener { 
            	val intent =
            		Intent(this, SettingPriceActivity::class.java)
        		startForResult.launch(intent)
            }
}
버튼 클릭 시 데이터를 받아 올 SecondActivity 를 실행한다
 with(binding){
	btnSend.setOnClickListener {
                val intent = Intent(this, MainActivity::class.java).apply {
                    putExtra("str","보낼 데이터")
                }
                setResult(RESULT_OK,intent)
                finish()
            }
}
참고 : https://developer.android.com/training/basics/intents/result#custom
https://developer88.tistory.com/351