» 首頁 » 討論區 » Android程式設計 »Activity與Service交換資料(Communication)

Activity與Service交換資料(Communication)

發表人: Seachaos
積分: 2432
發表時間: 2009-12-20 03:05:49
Activity與Service之間的溝通問題讓我困擾許久
bindService的用法只能在開始與結束的時候交換資料,無持續的交換資料

後來我發現可以透過Broadcast的方式讓Activity與Service之間交換資料

註冊一個BroadcastReceiver在Activity或Service
[quote]
    public void onCreate(){
        registerReceiver(myBroadcastReceiver, new IntentFilter(myAction));
    }
    public BroadcastReceiver myBroadcastReceiver = new BroadcastReceiver(){
        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            
        }        
    };
[/quote]

然後可以在另外一個Activity或Service使用sendBroadcast來傳遞Bundle的資料

如此一來交換資料就變得簡單多了
發表人: 訪客
發表時間: 2010-03-26 19:16:41
原來Broadcast可以這樣用 感謝
發表人: 訪客
發表時間: 2011-08-11 16:15:16
不好意思可以請問一下
registerReceiver(myBroadcastReceiver, new IntentFilter(myAction));
maAction應該要填什麼東西進去呢?
小弟最近在研究如何從service叫出來的activity回傳值給service,但是沒有很了解IntentFilter的做法,希望能夠給我一點意見,謝謝:P
發表人: Seachaos
積分: 2432
發表時間: 2011-08-12 13:33:44
[quote]訪客 提到:
不好意思可以請問一下
registerReceiver(myBroadcastReceiver, new Inte...[/quote]

Hi, MyAction是字串,可以自已定議
就是和Android有註冊的Boradcast發和收用的

發和收是相同的String就可以
發表人: 訪客
發表時間: 2012-12-09 18:48:50
謝謝你~
這篇文章對我很有幫助~