2017-5-4窝趣,我在執(zhí)行測(cè)試操作的時(shí)候,發(fā)現(xiàn)了一個(gè)問題:紅米Note1的手機(jī)android4.4不能獲取到圖庫中所選的圖片勾给,而華為榮耀4X暢玩版android5.0.1和三星5 android6.0滩报,以及android7.0的手機(jī)都可以獲取到,啟動(dòng)模擬器測(cè)試播急,結(jié)果也是一樣的脓钾。最終的解決方案如下:
我們假設(shè)問題是這樣的:ActivityA需要從ActivityB里面獲取一些東西,那么你可以使用BroadcastReceiver桩警、EventBus或者別的工具可训,但是最簡(jiǎn)單的是在ActivityA中使用StartActivityForResult和OnActivityResult,以及在ActivityB里面執(zhí)行SetResult和finish兩個(gè)方法捶枢。
在android4.4(包括api19)以下的手機(jī)里面握截,如果需要正常執(zhí)行,那么ActivityB的LaunchMode不能設(shè)置為singleTask烂叔、singleInstance谨胞、singleTop,只能設(shè)置為standard蒜鸡,否則ActivityA以及ActivityA中的Fragment不會(huì)執(zhí)行OnActivityResult方法胯努,但是ActivityA的LaunchMode可以隨意設(shè)置昼牛。
在android4.4(不包括api19)以上的手機(jī)里面,那么ActivityB的LaunchMode可以隨意設(shè)置康聂,ActivityA的LaunchMode也可以隨意設(shè)置贰健,此時(shí)ActivityA以及ActivityA中的Fragment都會(huì)執(zhí)行OnActivityResult方法。