2010-05-16 93 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

相关问题