android 请求码与结果码
在程序中我们会通过startActivity(intent)打开一个新的Activity,Android为了减少组件间的耦合,所以使用了Intent。所以我们在onClick事件打开的新Activity不与主Activity在一个线程中。但是,当新Activity被关闭后,会触发主Activity的onActivityResult事件。
1.请求码
使用startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,我们需要为startActivityForResult()方法传入一个请求码(第二个参数)。请求码的值是根据业务需要由自已设定,用于标识请求来源。例如:一个Activity有两个按钮,点击这两个按钮都会打开同一个Activity,不管是那个按钮打开新Activity,当这个新Activity关闭后,系统都会调用前面ActivityonActivityResult (int requestCode, int resultCode, Intent data)方法。在onActivityResult()方法如果需要知道新Activity是由那个按钮打开的,并且要做出相应的业务处理,这时可以这样做:
2.结果码
在一个Activity中,可能会使用startActivityForResult()方法打开多个不同的Activity处理不同的业务,当这些新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。为了知道返回的数据来自于哪个新Activity,在onActivityResult()方法中可以这样做(ResultActivity和NewActivity为要打开的新Activity):在onactivityResult事件中,通过判断resultCode更可知道是哪个Activity被关闭了。
无论你想使用请求码还是结果码,在代码中我们都同时传递请求码和结果码,可以说除onActivityResult()方法中的代码不同外,其他的代码都是一样的。由于请求码和结果码都传递,我们可以通过onActivityResult方法来获取你想要的码