2011-05-09 4 views
1

내 Android 애플리케이션은 처음으로 실행될 때 서비스를 시작합니다. 이 서비스는 네트워크 연결을 처리합니다.서비스를 죽이지 않고 내 앱을 죽이는 방법 (디버깅)

장치의 여유 공간이 부족하면 응용 프로그램이 종료 될 수 있지만 서비스는 계속 작동합니다 (극단적 인 경우는 제외). 앱이 다시 시작되면 서비스 상태에 따라 상태를 복원해야합니다 (문제가되지 않음).

여기 내 질문 : 내 응용 프로그램은 죽일 수 있지만 관련 서비스는 죽일 수 있습니까? 그것은 단지 디버깅 목적을 위해, 나는 상태가 올바르게 복원되었는지 테스트하고 싶습니다.

adb, ddms 또는 고급 작업 킬러로 앱을 종료하려고하면 서비스도 종료됩니다.

아이디어가 있으십니까?

감사합니다,

코드 :

final Intent intent = new Intent(this, Service.class); 
mStartServiceResult = startService(intent); 
mIsBound = bindService(intent, mConnection, 0); 

을 살해하는 내 서비스를 방지하기 위해 startForeground/setForeground 등을 사용 : 그처럼 내 서비스를 시작합니다.

답변

2

장치의 여유 공간이 부족하면 응용 프로그램이 종료 될 수 있지만 서비스는 계속 작동합니다 (일부 극단적 인 경우 제외).

아니요. 일부 또는 모든 활동이 파괴되어 서비스가 계속 실행될 수 있습니다. 또는 프로세스가 종료 될 수 있으며,이 경우 서비스가 종료됩니다.

응용 프로그램은 죽일 수 있지만 관련 서비스는 죽일 수 있습니까?

죄송합니다.

+1

그러나이 경우를 테스트하려면 2 분 후에 타이머에 activity call()을 호출 해보십시오. 이 경우 서비스가 중단되지 않는다고 가정하면 복원 사례를 테스트하는 데 도움이 될 수 있습니다. 그것은 똑같은 것은 아니지만. – Torp

+0

몇 가지 이상한 경우가 발생했습니다. 내 주요 활동이 android (즉, onDestroy())에 의해 사망했지만 서비스가 아직 살아있었습니다. 그럴 수 없다고 나에게 말해 줄 수 있니? –

+0

@Torp : 시도해 보겠습니다. 서버를 닫지 않아도됩니다. 감사합니다 :) –

관련 문제