2014-01-20 39 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

相關問題