【问题标题】:In Android: How to Call Function of Activity from a Service?在 Android 中:如何从服务中调用 Activity 的功能?
【发布时间】:2011-02-20 02:16:05
【问题描述】:

我有一个 Activity (A) 和一个 Service (S),它由 A 启动,如下所示:

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

A在A中有这样一个功能:

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

现在我想从 S 中调用 A.someInfoArrived(i)。 Intent.putExtra 没有可以传递对象引用等的版本... 请帮忙!

PS:反过来(A 轮询 S 获取新信息)不是我需要的。我找到了有关如何做到这一点的足够信息。

【问题讨论】:

    标签: android service callback android-activity android-intent


    【解决方案1】:

    一种选择是从startService() 切换到bindService() 并使用本地绑定模式。然后,您需要让 A 在某个时候调用 S 上的方法来注册侦听器或回调方法。然后,当一些信息到达时,S 将有一些可以调用 A 的东西。您可以查看该here 的示例项目。

    或者,您可以保留startService() 并使用广播Intent 让S 告诉A 一些信息到达。您可以看到一个演示此类广播的示例项目Intenthere

    【讨论】:

    • 谢谢,这正是我想要的!我对论坛的希望和信念已经恢复:)
    • 刚刚实施了你的第二个建议,它就像一个魅力。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-23
    相关资源
    最近更新 更多