【问题标题】:Access Running service and call its method?访问运行服务并调用其方法?
【发布时间】:2012-07-03 13:48:50
【问题描述】:

我现在创建了一个在后台发送位置的服务

我想在我的 ACTIVITY 中创建一个方法,它将访问 当前正在运行的服务实例并将调用其方法

说位置服务有Methode

SendLocation()
{
/// to do 
}

现在在活动 A:

Service s = getCurrentRunningServiceInstance // 类似这样的

并调用它的方法

s.SendLocation();

【问题讨论】:

    标签: android background-service


    【解决方案1】:

    您不能直接在 Service 上调用方法。你需要做的是bindService

    在您的Service 中,覆盖onBind() 并让它返回一个有效的IBinder,然后以客户端/服务器方式使用它。

    请参阅Services 的文档,尤其是有关Creating a Bound Service 的文档以及Bound Services 的文档。

    【讨论】:

      【解决方案2】:

      不建议调用服务的方法,而是按照以下步骤进行操作

      1) 在Activity中创建一个BroadcastReciever。

      2) 当位置改变时,从服务中发送带有位置附加信息的广播意图,

      3) 在 Activity 中从 Receiver 监听它并相应地更新 activiy。

      【讨论】:

      • 你好,可以调用任何正在运行的服务的方法吗?
      猜你喜欢
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 2017-10-19
      • 2010-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多