我有一个启动服务A
的活动B
。现在假设,我有一个方法abc
存在于活动A
类中。
现在不知怎的,我想从服务类中调用abc
,它基本上会停止一个特定的线程。
现在我想到的第一个解决方案就是将该函数声明为public static
,但这是不可能的,因为该方法确实使用了一些无法变为静态的变量。
我想到的其他想法是在启动服务时传递主要活动类的当前对象。
我确实尝试过,我发现这也是不可能的。
这个问题的解决方案是什么?
P.s:Android新手。
答案 0 :(得分:1)
现在不知怎的,我想从服务类调用abc,它基本上停止了一个特定的线程。
从服务的角度来看,目前还无法知道该活动是否仍然存在。
这个问题的解决方案是什么?
最有可能的是,重新组织您的应用,例如摆脱服务或更好地将其与UI层分离。
从战术上讲,您可以使用事件总线(LocalBroadcastManager
,greenrobot的EventBus等)让服务发布事件。您的活动可以监听此类事件并采取措施,但如果您的活动在服务继续运行时被销毁,事情仍然有效。