這次要說(shuō)的是一個(gè)很簡(jiǎn)單但是很有用的小技巧突雪,不知道偶然看到文章的各位是不是都已經(jīng)知道了。已經(jīng)知道的就可以略過(guò)了。
一般的我開(kāi)啟一個(gè)新的 activity 的時(shí)候都是直接 new 一個(gè) intent ,然后放入需要的參數(shù)妹卿,再 startActivity 或者 startActivityForResult 。這樣寫(xiě)當(dāng)然沒(méi)問(wèn)題,不管是從語(yǔ)法上還是規(guī)范上纽帖。而且在一個(gè)人開(kāi)發(fā)整個(gè)模塊的時(shí)候宠漩,完全感覺(jué)不到任何的問(wèn)題举反。但是如果在與人做對(duì)接的時(shí)候懊直,就不那么方便了。比如開(kāi)啟的目標(biāo) Activity 并不是你開(kāi)發(fā)的火鼻,而是別人開(kāi)發(fā)的室囊,那么你怎么知道必須傳入哪些參數(shù)的?你可以看源碼魁索,也可以取問(wèn)這個(gè)頁(yè)面的開(kāi)發(fā)者融撞,都可以。但是還是很麻煩粗蔚,如果目標(biāo) Activity 比較龐大尝偎,可能要看很久源碼才能知道必須傳入哪些參數(shù),問(wèn)人的話中間的溝通成本不知道是多少鹏控。但如果目標(biāo)頁(yè)面暴露出一個(gè)靜態(tài)方法:
public static void actionStart(Context context, String dada1, boolean data2) {
Intent intent = new Intent(context, ChatActivity.class);
intent.putExtra("str", dada1);
intent.putExtra("siSingle", data2);
context.startActivity(intent);
}
在目標(biāo)頁(yè)面中構(gòu)建了一個(gè)新的 Intent 并組裝了各個(gè)參數(shù)致扯,然后直接開(kāi)啟了目標(biāo) Acticity ,通過(guò)這個(gè)靜態(tài)方法的參數(shù)和參數(shù)名就知道需要傳入什么值当辐,并且不需要自己再調(diào)用了 start 方法了抖僵。省略了大量溝通和自己查閱的時(shí)間,還簡(jiǎn)化了自己的代碼缘揪,多好的事啊∷H海現(xiàn)在要開(kāi)啟目標(biāo)頁(yè)面只需要一行代碼:
ChatActivity.actionStart(this, "data1", false);
不過(guò)一般調(diào)用開(kāi)啟 Activity 很多都是會(huì)要求返回值的,直接用 context 開(kāi)啟是無(wú)法調(diào)用 startActivityForResult 這個(gè)方法的找筝,因此還可以寫(xiě)一個(gè)重載方法:
public static void actionStartForResult(Activity activity, String dada1, boolean data2, int requestCode) {
Intent intent = new Intent(activity, ChatActivity.class);
intent.putExtra("str", dada1);
intent.putExtra("siSingle", data2);
activity.startActivityForResult(intent, requestCode);
}
調(diào)用也還是一句代碼的事:
ChatActivity.actionStartForResult(this, "data1", false,OPEN_CHAT_ACTIVITY);
這個(gè)小技巧這里就結(jié)束了蹈垢,其實(shí)真的很簡(jiǎn)單,本來(lái)并不需要專門(mén)寫(xiě)個(gè)文章袖裕,大家稍微一說(shuō)就知道好在哪里耘婚,但是為什么還是要寫(xiě),因?yàn)橄胝f(shuō)說(shuō)提高團(tuán)隊(duì)效率陆赋。這個(gè)技巧對(duì)于獨(dú)立開(kāi)發(fā)者幾乎沒(méi)什么意義沐祷,但是對(duì)于團(tuán)隊(duì)開(kāi)發(fā)就很重要了。平時(shí)我們總說(shuō)注重團(tuán)隊(duì)效率攒岛,很有團(tuán)隊(duì)合作精神赖临,但具體什么是團(tuán)隊(duì)合作精神呢?這個(gè)小技巧某種程度上就是團(tuán)隊(duì)合作精神灾锯。除了完成必須的業(yè)務(wù)功能兢榨,最好能夠考慮到與團(tuán)隊(duì)其他人員合作的成本,一個(gè)應(yīng)用中幾十個(gè)頁(yè)面并不算多,一般也很少由一個(gè)人開(kāi)發(fā)完成吵聪,通過(guò)類似的技巧凌那,可以省卻很多團(tuán)隊(duì)之間溝通的時(shí)間和成本。包括合理的方法名吟逝,變量名等帽蝶,都有助于提高團(tuán)隊(duì)開(kāi)發(fā)效率。
本文最早發(fā)布于的 alphagao.com 块攒。