startUpdateFlowForResult 的 onActivityResult 替代方案

NIK*_*ARG 18 android android-studio onactivityresult in-app-update

由于 onActivityResult 已被弃用,在 InAppUpdates 中获取 startUpdateFlowForResult 的回调而不是 onActivityResult 的替代方法是什么?

sha*_*une -2

您可以使用下面的代码片段替代 onActivityResult() 第一个活动

步骤1

 private val openActivity =
    registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
        handleActivityResult(REQUEST_CODE, it)
    }
Run Code Online (Sandbox Code Playgroud)

第2步

openActivity.launch(
            Intent(this, YourClass::class.java).apply {
                  putExtra(ANY_KEY, data) // If any data you want to pass 
            }
        )
Run Code Online (Sandbox Code Playgroud)

步骤3

 private fun handleActivityResult(requestCode: Int, result: ActivityResult?) {
        Timber.e("========***handleActivityResult==requestActivty==$requestCode====resultCode=========${result?.resultCode}")
        if (requestCode == REQUEST_CODE) {
            when (result?.resultCode) {
                Activity.RESULT_OK -> {
                val intent =   result.data // received any data from another avtivity
                }
                Activity.RESULT_CANCELED->{
                  
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

在二等舱

val intent = Intent()
intent.putExtra(ANY_KEY, data)
setResult(Activity.RESULT_OK, intent)
finish()


    
Run Code Online (Sandbox Code Playgroud)

  • 是的,我知道,这与 startActivityForResult 一起使用。但如何与startUpdateFlowForResult一起使用。因为它有 4 个参数。https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager.html#startUpdateFlowForResult(com.google.android.play.core.appupdate.AppUpdateInfo,%20int,%20android.应用程序.Activity,%20int) (2认同)