Android 意图:总是得到 resultCode = 0

Posted

技术标签:

【中文标题】Android 意图:总是得到 resultCode = 0【英文标题】:Android Intent : Always get resultCode = 0 【发布时间】:2020-06-08 03:44:07 【问题描述】:

我试图在 2 个活动之间获得意图的结果,但出现了问题,因为我在初始活动中总是得到 resultCode = 0:

CarsFragment.kt 中的代码

private fun startAddCarActivity() 
    val intent = Intent(context, AddCarActivity::class.java)
    startActivityForResult(intent, 1)


override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) 
    super.onActivityResult(requestCode, resultCode, data)
    // ALWAYS GET requestCode = 1, resultCode = 0 and data = null !!

AddCarActivity.kt:

private fun startCarsNavigationActivity() 
    intent.putExtra("car", car)
    setResult(1, intent)
    finish()

问题:

我总是在 CarsFragment.kt 中得到 requestCode = 1、resultCode = 0 和 data = null

问题出在哪里?

【问题讨论】:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) if(requestCode == 1 && resultCode == RESULT_OK) //get your data here and use it 在 AddCarActivity 上将 setResult(1, intent) 替换为 setResult(Activity.RESULT_OK,intent) 并在 carFragment 的 onActivityResult 上检查 resultCode == Activity.RESULT_OK。 @Shijil 总是一样的:requestCode = 1, resultCode = 0 and data = null AddCarActivity 清单中的 launchMode 是什么?也许它是从不同的任务开始的,我相信在不同任务之间返回结果存在一个已知问题。 发布您的清单。 【参考方案1】:

结果代码 0 表示RESULT_CANCELED。如果您正在启动的 Activity 被启动到不同的任务中,或者如果用户按下 BACK 键,或者如果启动的 Activity 决定返回 RESULT_CANCELED,则可能会发生这种情况。

【讨论】:

以上是关于Android 意图:总是得到 resultCode = 0的主要内容,如果未能解决你的问题,请参考以下文章

Android 9 ResolvableApiException onActivityResult 有 resultCode 0 RESULT_CANCELED

Google 登录不适用于 Android 的发布版本

Android Power Screen `Control` 总是采用相同的意图

Android:requestCode 和 resultCode

android小部件-重启后并不总是注册待处理的意图

onActivityResult resultCode 给出了反之亦然的结果