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
Android Power Screen `Control` 总是采用相同的意图