我已经创建了一个现在在后台发送位置的服务
我想在 ACTIVITY 中创建一个方法,它将访问 当前正在运行服务实例并将调用其方法
说具有Methode的位置服务
SendLocation()
{
/// to do
}
现在进入活动A:
服务s = getCurrentRunningServiceInstance //类似这样
并调用其方法
s.SendLocation();
答案 0 :(得分:4)
您无法直接在Service
上调用方法。您需要做的是bind
到Service
。
在Service
中,覆盖onBind()
并让它返回有效的IBinder
,然后以客户端/服务器方式使用它。
请参阅Services的文档,特别是有关Creating a Bound Service的文档以及Bound Services的文档。
答案 1 :(得分:1)
建议不要使用方法调用服务,而是按照以下步骤进行操作
1)在Activity中创建一个BroadcastReciever。
2)当位置发生变化时从服务中发送具有位置附加功能的广播意图,
3)从活动中的Receiver中收听并相应地更新活动。