繁体   English   中英

onActivityResult Android

[英]onActivityResult Android

我是android的新手,并有以下查询。

我正在构建一个应用程序,它包含第一个和第二个活动,它们相互发送消息。 'first'向'second'发送消息然后'second'开始,显示收到的消息并将消息发送回'first'。 最后,首先显示收到的消息。

在第一个活动中,我必须使用startActivityForResult启动第二个活动,因为我需要回复。

问题 - 当覆盖onActivityResult时,我们为什么要检查是否(resultCode == RESULT_OK)

根据android网站 -

onActivityResult是“当您启动的活动退出时调用,为您提供启动它的requestCode,返回的resultCode以及来自它的任何其他数据。”

因此,如果我在“第二个活动”中将ResultCode设置为Result_OK,为什么我必须在'first'活动中检查resultCode。 当'second'设置resultCode并退出时,是否调用onActivityResult?

谢谢 !

PS - 我试过删除语句 - if(resultCode == RESULT_OK)。 我得到一个NullPointerException。

您的活动可能会以两种方式退出,首先是您输入消息时听起来“正常”,并且可能会按下一些“完成”按钮来完成它。 这样您就可以将结果设置为OK。

用户可以按下后退按钮的第二种方式,因此您的活动结束而不捕获用户输入,因此您的onActivityResult可能什么也得不到。 这样,您就会获得空指针异常,您知道用户在没有输入正确输入的情况下退出了活动2。

希望您了解为什么ResultCode在这种情况下很重要。

当您处于第二个活动并按后退键时,第二个活动将完成,结果代码将不会是“确定”。 所以需要ResultCode。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM