从服务访问静态变量

Ker*_*mia 2 java variables static android

我的应用程序有一个服务,我MainActivity有一个static变量:

public static boolean appIsPlaying = false;
Run Code Online (Sandbox Code Playgroud)

我的服务代码是这样的:

MainActivity.appIsPlaying = false;
Run Code Online (Sandbox Code Playgroud)

这段代码效果很好,但我不确定这是一个真正的方法.那么,如果这个解决方案有问题,你能帮帮我吗?

谢谢

Mal*_*olm 8

我真的不同意那些说让我们只使用吸气剂和固定剂的人,这就是解决方案.您的解决方案很简单,但有效.服务和活动本身之间的这种通信方式没有问题.这不是一些公共API,因此使用公共字段并不是一个明确的禁忌.

只有在您必须满足某些要求时才会出现问题.这种互动是最简单的,因此它做不了多少.例如,如果您想要侦听更改值的事件,那么您将遇到问题,因为您只是设置了值而不通知活动.

如果是这种情况,那么您可以绑定到服务,并实现更复杂的交互.可以通过将侦听器存储在服务中并在发生更改时通知它们来监听值更改.

没有真正方法,有更合适的,不那么.你必须根据自己的需要选择其中一个.