startActivityForResult和setResult详解
- startActivityForResult与startActivity的区别:
- startActivity做的就像是一次性工作,只负责跳转到另一个activity,剩下的事情和我无关
- startActivityForResult做的事情是跳转到另一个界面以后,另一个界面调用finish的方法还会跳转回来并且调用onActivityResult方法
- http://www.cnblogs.com/lijunamneg/archive/2013/02/05/2892616.html这篇博客讲的很具体,我觉得不可能讲的更好了,所以大部分的内容请参考一下,这里补充一些细节问题
- 如果调用startactivity跳转的话,那么跳转的界面使用setresult和finish是无用的,比如按back的时候就会调用setresult方法,这时候返回的界面是不会调用onActivityResult的
- 如果使用setresult和finish返回,那么intent指定的class是不会跳转的
- finish和startacticity一起使用的情况:finish跳转到父界面,startacticity会跳转到另外一个界面,请注意一下,这两个操作都会被执行的,但是startacticity会被先执行,这时候按back键会返回父界面去执行onActivityResult方法,但是如果这个界面再次进行操作,那么父界面的onActivityResult调用就会被无限后延直到结束操作,或者退出