2010-05-16 78 views
7

我有一個活動(A)並獲得由開始這樣的服務(S):在Android中:如何從服務調用活動的功能?

Intent i = new Intent(); 
i.putExtra("updateInterval", 10); 
i.setClassName("com.blah", "com.blah.S"); 
startService(i); 

一個有這樣一個在一個函數:

public void someInfoArrived(Info i){...} 

現在我想從S.內呼叫A.someInfoArrived(i)Intent.putExtra沒有我可以傳遞對象引用等的版本... 請幫忙!

PS:反過來(對新信息投票S)不是我所需要的。我發現有關如何做到這一點的足夠信息。

回答

14

一種選擇是從startService()切換到bindService()並使用本地綁定模式。然後,你需要在某個時刻在S上有一個A方法來註冊一個監聽器或回調方法。然後,當有些信息到達時,S會給A打電話。你可以看到here的示例項目。

或者,您可以將startService()保留原位並使用廣播Intent讓S告知A有關某些信息的抵達。你可以看到一個示範項目演示這樣的廣播Intenthere

+1

謝謝,那就是我一直在尋找的!我的希望和相信在論壇已被恢復:) – nex 2010-05-16 14:31:01

+0

剛剛實施你的第二個建議,它的作品就像一個魅力。再次感謝! – nex 2010-05-16 15:03:45

相關問題