在Android中:如何从服务调用活动的功能?

nex*_*nex 7 service android callback android-intent android-activity

我有一个活动(A)和一个服务(S),它由A启动,如下所示:

Intent i = new Intent();
i.putExtra("updateInterval", 10);
i.setClassName("com.blah", "com.blah.S");
startService(i);
Run Code Online (Sandbox Code Playgroud)

A在A中有这样的功能:

public void someInfoArrived(Info i){...}
Run Code Online (Sandbox Code Playgroud)

现在我想从S.内部调用A.someInfoArrived(i).Inntnt.putExtra没有我可以传递Object引用等的版本...请帮忙!

PS:另一种方式(新信息的轮询S)不是我需要的.我找到了关于如何做到这一点的足够信息.

Com*_*are 14

一种选择是切换startService()bindService()并使用本地绑定模式.然后,您需要在某个时刻在S上调用一个方法来注册一个监听器或回调方法.然后,当某些信息到达时,S将会在A上调用它.您可以在此处查看示例项目.

或者,您可以留下startService()并使用广播Intent让S告诉A有关到达的一些信息.您可以Intent 在此处查看演示此类广播的示例项目.