您的位置:首页 > 其它

startActivityForResult理解笔记

2017-10-25 16:54 337 查看
今天进一步理解了startActivityForResult(Intent intent,
int requestCode);onActivityResult(int requestCode, int resultCode, Intent data);和setResult(int
resultCode, Intent data);主要2点,怎么用和调用谁的。

1.一个activity调用startActivityForResult
,进入一个新的activity界面,然后新的activity销毁了,原activity的onActivityResult被调用,其中requestCode为开始调用startActivityForResult设置的requestCode,第二个和第三个参数为新activity在调用finish方法之前调用setResult方法设置的(注意此处一定要在finish之前setResult)。

2.fragment和activity到底谁调用onActivityResult方法:这个要看是谁的context启动的startActivityForResult方法,举例说假如是fragment想让父亲activity的onActivityResult被调用可以使用this.getActivity().startActivityForResult(Intent intent,
int requestCode);

有时候跨activity传递数据还是有点麻烦,比如abc3个页面,a到b到c,c启动b就销毁,c销毁,a并不会调用onActivityResult,所有有时候还是写dialog吧,典型的场合是activity
和dialog同时显示 要先dialog.dismiss() 后activity.finish() 如果直接finish() 会出错 但不影响功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: