startActivityForResult(intent,3021)
I am using this since long time, is this method is deprecated now?
startActivityForResult(intent,3021)
I am using this since long time, is this method is deprecated now?
It is indeed deprecated. I tried to figure the new way out and thought I want to share it here.
Now instead of overriding onActivityResult for all callbacks and checking for our request code, we can register for each call back separately by using registerForActivityResult which takes in an ActivityResultContracts. IMO this is a way better approach than the previous way.
Here is an example of starting an activity for a result:
val previewRequest =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
if (it.resultCode == RESULT_OK) {
val list = it.data
// do whatever with the data in the callback
}
}
Now instead of StartActivityForResult we use
val intent = Intent(this, PreviewFullscreenActivity::class.java)
intent.putStringArrayListExtra(AppConstants.PARAMS.IMAGE_URIS, list)
previewRequest.launch(intent)