2014-03-19 4 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_STICKY이나 START_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

유리 및 비 유리 서비스 수명 사이에 예상되는 동작 차이가 없습니다. "우리가 응용 프로그램을 종료했을 때"당신은 무엇을 의미합니까? 글래스와 비 글래스에 대해이 의미가 갖는 의미에 대해 좀 더 자세히 설명해 주시겠습니까? "응용 프로그램"은 모든 활동/단편/서비스/스레드가 중지 될 때만 종료됩니다. 서비스가 아직 실행중인 경우 뒤로 버튼을 누르거나 아래로 스 와이프하여 '애플리케이션'을 종료해서는 안됩니다. 라이브 카드 서비스 구현이 비 Glass 애플리케이션의 서비스 구현과 다를 수 있습니까? – swooby

관련 문제