首先调用启动服务的服务中的活动方法

时间:2017-12-17 17:24:17

标签: android

我有一个启动服务A的活动B。现在假设,我有一个方法abc存在于活动A类中。

现在不知怎的,我想从服务类中调用abc,它基本上会停止一个特定的线程。

现在我想到的第一个解决方案就是将该函数声明为public static,但这是不可能的,因为该方法确实使用了一些无法变为静态的变量。

我想到的其他想法是在启动服务时传递主要活动类的当前对象。

我确实尝试过,我发现这也是不可能的。

这个问题的解决方案是什么?

P.s:Android新手。

1 个答案:

答案 0 :(得分:1)

  

现在不知怎的,我想从服务类调用abc,它基本上停止了一个特定的线程。

从服务的角度来看,目前还无法知道该活动是否仍然存在。

  

这个问题的解决方案是什么?

最有可能的是,重新组织您的应用,例如摆脱服务或更好地将其与UI层分离。

从战术上讲,您可以使用事件总线(LocalBroadcastManager,greenrobot的EventBus等)让服务发布事件。您的活动可以监听此类事件并采取措施,但如果您的活动在服务继续运行时被销毁,事情仍然有效。

相关问题