访问正在运行的服务并调用其方法?

8
我已经创建了一个后台发送位置信息的服务。
希望在我的活动中创建一个方法,该方法将访问当前正在运行的服务实例并调用其方法。
假设位置服务具有方法。
SendLocation()
{
/// to do 
}

现在在Activity A中:

Service s = getCurrentRunningServiceInstance // 类似这样的代码

并调用它的方法。

s.SendLocation();
2个回答

4
您不能直接调用Service上的方法。您需要做的是将其bindService上。
在您的Service中,重写onBind()方法,并让它返回一个有效的IBinder,然后以客户端/服务器的方式使用它。
请参阅有关Services的文档,特别是有关创建绑定服务的部分,以及绑定服务的文档。

1

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

1)在Activity中创建BroadcastReciever。

2)当位置发生变化时,从服务发送带有位置额外信息的广播意图。

3)在Activity中从接收器监听广播并相应地更新活动。


3
您好,是否有可能调用任何正在运行的服务的方法? - ρяσѕρєя K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接