是onActivityResult从根本上打破了吗?

时间:2016-09-15 22:37:41

标签: android deprecated onactivityresult startactivityforresult

它的某些实现,以及看似某些设备,似乎永远不会返回等于-1的RESULT_OK,只返回误导性的0,同时在Intent extras中包含所有必要的数据

我已经看到很多Google示例代码不再对resultCode做一个条件,但他们可以弃用它而不会破坏任何内容,因为Google倾向于完全弃用非功能性方法,因为他们喜欢他们的新名称更多,他们可以重载一个新的onActivityResult,而不是将resultCode作为方法参数。

我想知道是否有关于特定消息传递协议似乎只是失败的技术解释或博客文章,文档中没有任何更新说明"嘿可能不要依赖于任何押韵或理由后的resultCode"

1 个答案:

答案 0 :(得分:4)

结果代码值是由特定活动的实现定义的合同。 Android本身定义的唯一合同是结果代码是整数。

Android定义了成功的简单常量(RESULT_OK)和失败(RESULT_CANCEL),但是由活动决定是否要使用它们,出于何种目的,使用不同的值,或甚至不设置结果代码(在这种情况下,默认值为RESULT_CANCEL)。在许多情况下,简单的成功或失败不够完整,活动返回其他int值。

所以,简短的回答是你需要查阅活动的来源,看看它的作用(或文件,但合同不太可能在那里定义)。