前幾天有個關(guān)于activity跳轉(zhuǎn)的很小的需求讓我做蹬挤,自己感嘆太簡單了,就很馬虎的寫完了代碼爆雹,結(jié)果測試一測測出那么多bug,搞得自己極度懷疑自己了,這么簡單的個東西竟把我折騰了這么久域慷,差點就開始懷疑人生了。看來任何一個小需求璧帝,不管自己認(rèn)為它多么簡單都不要馬虎輕率地對待恤左,都要仔細(xì)認(rèn)真的做好瓶您。正所謂“一屋不掃,何以掃天下”歌豺,不要眼高手低蟹腾。
是關(guān)于在一個fragment里面跳轉(zhuǎn)到另外一個activity的。下面列出幾個知識點:
1.singleTask情況:
待啟動Activity的LauchMode若設(shè)置為了singleTask,則調(diào)用startActivityForResult進(jìn)入到目標(biāo)activity胜宇,來源Activity或fragment的onActivityResult立刻被調(diào)到了盏求,而不是在其finish后調(diào)到。(不管是在activity里面還是fragment里面調(diào)用startActivtyForResult)
2.fragment的startActivityForResult與getActivity.startActivityForResult區(qū)別:
1>在fragment里面調(diào)用startActivityForResult會響應(yīng)到寄宿Activity和自身的onActivityResult里面去.
2>在fragment里面調(diào)用getActivity.startActivityForResult只會調(diào)到寄宿的activity的onActivityResult里面去,不會掉到自身的onActivityResult.
3.activity和fragment的requestCode的問題:
1>在fragment里面使用startActivityForResult時檐盟,寄宿activity得onActivityResult里面的requestCode不是傳進(jìn)去的requestCode,被android系統(tǒng)給傳了另外的一個值。自身fragment的onActivityResult里面的requestCode是當(dāng)初傳進(jìn)去的那個值.
2>在fragment里使用getActivityForResult時,寄宿activity的onActivityResult的requestCode就是當(dāng)初傳進(jìn)去的那個值。
4.resultCode的情況:
在目標(biāo)Activity 調(diào)用finish之前,若不設(shè)置setResult(RESULT_OK);則默認(rèn)為RESULT_CANCELED,此處注意在onActivityResult收到RESULT_CANCELED return不處理時,要考慮是否將要處理的設(shè)置了setResult(RESULT_OK);
后記:剛畢業(yè)那回,一個人在上海也沒什么朋友,周末自己呆在家里覺得郁悶的快要死掉了劣针,經(jīng)歷了2年的磨練桨螺,慢慢習(xí)慣了一個人的生活,沒人說話又怎么了酿秸,一整天不出門又怎么了,自己一樣可以過得很好魏烫,依然能找到自己的存在辣苏,而且還能自己真正的獨處想點事情肝箱。習(xí)慣真的是個可怕的東西,原來以為自己忍受不了的東西稀蟋,時間久了煌张,慢慢竟也習(xí)慣了,還能樂在其中退客。時間能改變一切骏融!