我的android學習<二>視圖的控制者 Activity–>Activity間的通信(1)

一人難成大事,獨木難造堅舟.那句說到爛,聽到煩的話,團結就是力量.君不見成群結隊的黑社會可以橫行於市?

 APP市場就是一個社會,每個Acitivity就像一個一個活生生的人,由他們組成的一個個單位,就是一個一個的APP.一個好的APP需要由不同但又緊密聯系的Activity組成,它們通信著,為的就是造一個好的APP.

下面,疑問來瞭.Activity間怎樣通信呢?

一:通過第三方可持久化存儲和讀取.

舉例說明:Activity_A 把數據寫到某個XML文件,然後Activity_B去讀XML文件.或者,Activity_B寫數據,Activity_A讀數據.

二:通過Intent傳輸

這樣去說明吧:

情景一:你要寫一封email(哥們不邀請他回復),首先你得新建一封伊妹兒,這個伊妹兒就是Intent,然後,你得在伊妹兒上寫上對方的地址,怎樣寫呢,你可以調用setClass(),也可以調用setAction().好瞭,剩下就是把你想要寫的東西寫到伊妹兒上,這時,你隻需要調用Intent.putExtra().然後,孩子點擊發送吧,此時,你需要調用Acitivity.startActivity();

畫面一轉,來到收信方,那哥們首先要做的是去信箱拿到你寫給他的伊妹兒,他要做的就是調用Activity.getIntent(),剩下的他就是看信,這裡不細表.

情景二:你還是要寫一封伊妹兒(這次哥們需要她回信),首先,還得新建一伊妹兒,同樣的,此伊妹兒為Intent,然後你得在信封寫上對方的地址,你依然要調用Intent.setClass()或則Intent.setAction().把想寫的寫到伊妹兒後,孩子,點擊發送吧,哦,不,因為你還想他回復,在點擊發送前,你還得寫上你的邀請,此時,你得調用Activity.startActivityForResult(Intent mintent , int requesCode).這裡requestCode就是邀請碼.

畫面還是一轉.來到收信方.那哥們,同樣還是先打收信箱那裡收你寫給他的伊妹兒,那哥們看到你的回復邀請,於是他點擊回復,這時,他不需要再填寫地址瞭,但是,他有前言萬語,因此,他有可能很多的回復,為瞭區別這些回復,他得為此做標記,因此,在點擊回復的時候,他調用瞭Activity.setResult(Intent mIntent, int resultCode),這裡,resultCode就是回復標記,而Intent就是回復的內容.

畫面再次一轉,你在收信箱OnActivityResult(int requestCode , int resultCode,Intent data)接收回復.因為你寫瞭很多封有邀請回復的伊妹兒,所以,在收信箱那裡,它會以邀請碼去區分,這是誰回復的,而resultCode就是第幾個回復,當然Intent就是回復的內容.

到這裡,完整的一次通信,就結束瞭.

作者:xianming90

發佈留言