如何从Android中的服务调用一个活动的方法?

时间:2012-09-03 11:07:48

标签: java android service android-activity

我有一个活动'A',它扩展了调用服务'B'的mapActivity,以及扩展服务的服务'B'。我正在服务'B'获得纬度和经度。现在我需要调用Activity'A'中的方法,并在位置更新后立即传递纬度和经度。在该方法中,我有代码来显示位置。提前谢谢..

2 个答案:

答案 0 :(得分:2)

  

如何从Android中的服务调用一个活动的方法?

你没有。

或者:

  • 首先不应该是Service(包含活动中的所有逻辑),或
  • 使用LocalBroadcastManager从服务向活动发送消息,或
  • 使用Messenger从服务向活动发送消息,或
  • 在活动中使用PendingIntent创建的createPendingResult()从服务向活动发送消息,或
  • 使用ResultReceiver或Otto库或其他各种方式将服务中的消息发送到活动

答案 1 :(得分:1)

您无法从服务中引用活动,除非您设置了STATIC引用 - 这是非常不推荐的,并且被认为是内存泄漏问题的罪魁祸首。

相反,我建议您使用context.sendBroadcastBroadcastReceiver来使用Android的广播机制。