Android 服务被局部变量引用,但在函数调用之间保持值

Android 服务被局部变量引用,但在函数调用之间保持值,android,android-intent,Android,Android Intent,我在玩服务和对话,我有一个疑问。在一个对话框中,我启动了如下服务: Intent lock = new Intent(getActivity(),AppLockService.class); getActivity().stopService(lock); getActivity().startService(lock); 现在我第一次通过调用对话框 dialog_name.show(getFragmentManager(), "dr

我在玩服务和对话,我有一个疑问。在一个对话框中,我启动了如下服务:

  Intent lock = new Intent(getActivity(),AppLockService.class);
            getActivity().stopService(lock);
                getActivity().startService(lock);
现在我第一次通过调用对话框

dialog_name.show(getFragmentManager(), "dropbox");
按下OK(确定)按钮后,启动意图。现在稍后,在相同的应用程序执行过程中,再次触发对话框(根据我的代码逻辑--这里没有错误)。然后,对话框中的代码停止先前触发的意图,并启动新意图

我的问题是:


lock根据我的定义,是一个局部意图变量。那么,它如何知道它必须停止我第一次在这里触发的特定服务呢?有人能给我解释一下吗?

您不必在变量中跟踪服务,因为Android为您提供服务

操作系统对待服务的方式是,它在任何时候都不允许运行多个服务实例


因此,在任何时候都有0或1个您的服务实例。如果存在0,则没有问题,操作系统将忽略对
StopService
的调用。如果有1个实例,它必须是您之前启动的实例-因此将停止该实例。

感谢您的澄清。:)