自己查过很多次,但是总结起来自己终于清晰了,主要分三点。
1.A跳转的时候不是采用startActivity(intent) 这个方法,而是startActivityForResult(intent, 0);
2.重写onActivityResult方法,用来接收B回传的数据;
3.在B中回传数据时采用setResult方法,并且之后要调用finish方法。
如果在startActivityForResult起来的Activity里面设置setResult,结果并不会马上返回给parent的Activity,只有当前Activity被finish,结果才会被发送给parent的onActivityResult去处理!
按BACK键从一个Activity退出来的,一按BACK,android就会自动调用Activity的finish()方法,然后设置resultCode为RESULT_CANCELED,也就不会返回任何数据了 .
解决方法就是在Activity里面捕获按BACK的事件,捕获到之后先setResult,然后自己来调用finish,就搞定了……
本文详细阐述了Android应用中Activity间通过startActivityForResult实现数据传递的方法,包括跳转过程、接收数据的方式以及如何正确处理BACK键触发的finish方法,确保数据能准确返回给上层Activity。
2万+

被折叠的 条评论
为什么被折叠?



