2014-03-19 17 views
7

我有一個服務在同一個進程中運行。服務超出Google Glass上的父應用程序?

<service 
     android:name=".service.GlassService" 
     android:exported="true" 
     android:label="@string/app_name" /> 

我使用startService()啓動服務。

 startService(new Intent(this, GlassService.class)); 

當我刷下來,退出應用程序,服務生活在。當我從DDMS殺死它時,服務是重新啓動,呼叫服務START_STICKYSTART_NOT_STICKY都沒有差別。

我可以停止服務的唯一方法是當我明確地調用stopService()stopItself()或省略startService()。

在其他android設備上不是這種情況。這是Google Glass的典型行爲嗎?

回答

1

這通常是人們使用服務的原因。它們是長時間運行的進程,通常用於執行後臺處理或同步來自內容提供者的數據。所以它很容易延伸,他們可以超越他們的父母程序。

來源:

  1. 你描述的情況,以我的應用來說,它的上一個正常 電話
  2. 運行是這麼說的這谷歌文檔中[文檔] [1](閱讀 爲什麼服務沒有螺紋部)

    [1]: http://developer.android.com/reference/android/app/Service.html

+0

在我們的非玻璃器件上,無論我們做了什麼,在我們退出應用程序(onDestroy()被調用)時服務總是被殺死。我們的理解是服務隱式地運行在與應用程序相同的過程中(不是孤立的),所以當應用程序被終止時,服務就會死亡。我不會在您發佈的參考文獻中找到任何關於服務超出申請的內容。你能否明確指出你正在談論的部分? – jellyfication

+0

玻璃與非玻璃使用壽命之間沒有預期的行爲差異。你什麼意思是「當我們退出應用程序時」?您能否更具體地瞭解您在玻璃和非玻璃上的含義? 「應用程序」僅在所有活動/片段/服務/線程停止時結束。如果服務仍在運行,按下後退按鈕或向下滑動不應退出「應用程序」。您的Live卡服務實施可能與您的非Glass應用的服務實施有所不同嗎? – swooby

相關問題