2014-01-20 37 views
0

我正在玩弄服务和对话框,并且我有疑问。 一个对话框,我开始一个服务是这样的:由局部变量引用的服务,但在函数调用之间保持值

Intent lock = new Intent(getActivity(),AppLockService.class); 
      getActivity().stopService(lock); 
       getActivity().startService(lock); 

现在我第一次调用对话框通过

dialog_name.show(getFragmentManager(), "dropbox"); 

在按下OK按钮,意图启动。现在后来,在执行相同的应用程序期间,对话框再次被触发(这是根据我的代码逻辑 - 这里没有错,这里)。对话框中的代码然后停止以前触发的意图和开始新的意图。

我的问题是这样的:

本地意图变量按照我的定义。那么它是如何知道它必须停止我第一次在这里触发的特定服务?请有人给我解释一下吗?

回答

1

您不必跟踪变量中的服务,因为Android是为您服务的。

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

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

+0

感谢您的澄清。 :) – SoulRayder

相关问题