5/18/2011

[Android] Internt 訊息傳遞

續之前的android 使用intent完成在螢幕間的切換動作,intent包含activity等載體間切換所需的動作,分類,傳送資料等訊息,等於就是載體間的[FedEx]快遞一樣.本篇來說說如何做訊息傳遞:
[說明]兩個activity,彼此間需要訊息傳遞
1.程式碼

Activity1 : setclass方式做切換class,intent.putExtra的方式做訊息傳送的動作,啟動一個新的活動,或讓現有的活動執行新的操作,可以透過呼叫startActivity().
image
Activity2 : 利用"getExtra()"此方式抓取activity1傳來的訊息,之後在OnCreate() 中加入getExtra(),表示當切換到activity2起來時會做抓取動作
image
官網: When an activity exits, it can call setResult(int) to return data back to its parent. It must always supply a result code, which can be the standard results RESULT_CANCELED, RESULT_OK, or any custom values starting at RESULT_FIRST_USER. In addition, it can optionally return back an Intent containing any additional data it wants. All of this information appears back on the parent's Activity.onActivityResult(), along with the integer identifier it originally supplied.
Activity2 : 同理,傳送資料也是用activity1的方式intent方式傳送資料(intent.putExtra的方式做訊息傳送的動作),但是注意activity1與2已經起來了,不可以在setclass方式建立,需要finish(),做切換的動作,但是需先設定setResult(RESULT_OK, intent);
setResult(RESULT_OK, intent); //回傳"RESULT_OK" 與"onActivityResult(activity1)配合"
finish(); //關掉目前的"activity"activity2
image
Activity1: onActivityResult抓取訊息 ( resultCode == RESULT_OK)
image

沒有留言:

張貼留言

請留言~一起討論吧~