startActivityForResult是一个用于启动另一个Activity并且希望能够在启动的Activity结束后获取返回结果的方法。它的用法如下:
在启动Activity的地方调用startActivityForResult方法,传入一个Intent对象和一个请求码requestCode。Intent对象用于指定要启动的Activity,requestCode用于标识这次启动的请求。
在被启动的Activity中,在需要返回结果的地方调用setResult方法,传入一个结果码resultCode和一个包含结果数据的Intent对象。resultCode用于标识这次返回的结果,Intent对象用于携带返回的数据。
然后被启动的Activity会被销毁,返回到启动它的Activity,并调用启动Activity时传入的onActivityResult方法,该方法会接收到返回的结果数据。onActivityResult方法中可以通过判断requestCode和resultCode来处理特定的返回结果。
通过使用startActivityForResult方法,我们可以实现不同Activity之间的交互和数据传递。例如,启动一个登录Activity并等待用户登录完成后返回登录结果,或者启动一个选择图片的Activity并等待用户选择图片后返回选择的图片的路径等等。
需要注意的是,当调用startActivityForResult方法启动一个Activity时,如果启动的Activity设置了android:launchMode为singleInstance或singleTask,那么该Activity将无法接收到返回结果。