문제

내가 있는 응용 프로그램 activity 하나 service.면 나는 죽일 activityservice 실행하다가 죽고 너무입니다.그것은 나에게 매우 중요하다는 것을 서비스하지 않는 살아남을 것입니다.는 방법을 확인하는 시스템을 죽인(나 내가 죽은 그것을 취소하여"최근 애플 리케이션"목)의 activityservice 여전히 활성 상태로 유지 종료될 때까지 그것의 일이?사전에 감사합니다!

도움이 되었습니까?

해결책

그것은 나에게 매우 중요하다는 것을 서비스하지 않는 죽을

귀하의 프로세스는 죽을 수 있습에서 어떤 때에는 그 사유 및 제한기간에 따라 사용자는 활동(최근 작업 목록과 타사 작업 관리자,"강제로 중지 설정에서",등.) 기 OS 요구사항(시스템 RAM 이 낮음).당신을 막을 수 없다.

몇 가지 단계를 수행할 수 있습의 가능성을 최소화 하기 위해 OS 결정에 자신의 종료와 같은 프로세스를 사용하여 startForeground() 에서 서비스,그러나 이것은 블록에서 사용자는 무엇을 하는 사용자와 앱의 과정입니다.

나는 창을 표시하는 서비스의 경우 그래서 서비스가 중 다음 창이 사라집니다.

아마도 사용자 귀하의 창을 사라지는 경우 사용자가 명시적으로 제거하는 앱을 통해 최근의 작업 목록,작업 관리자,등등.당신은 확실히 환영하는 조언에 있는 사용자 설명서의 어떤 부정적인 영향이 있을 것이다.

당신은 또한 환영을 실험하는 서비스에서 별도로 처리됩니다.나의 이해가는 이 도움이되지 않습니다 최근의 작업 목록에 4.4 수 있지만에 이전 버전의 안드로이드.지 이는 타사 작업 관리자는 아마존에서 관리자,이해에 도움이되지 않습니다.에서 설정합니다.그것은 또한다는 것을 의미와 거래를 해야 IPC 증가,시스템 램 소비하는 동안 당신의 기본이고 서비스 프로세스는 모두 실행,etc.

다른 팁

시도할 수 있습니다로 돌아 START_STICKYonStartCommand 에서 당신의 서비스:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    handleCommand(intent);
    // We want this service to continue running until it is explicitly
    // stopped, so return sticky.
    return START_STICKY;
}

당신은 실행에 바인딩 서비스입니까?그렇다면,시스템이 죽을 때 그것의 마지막 활동은 클라이언트 연결이 끊어(종료).여기에 선전에서 페이지 참조:

마지막 클라이언트에 대한 바인딩을 해제합서비스,시스템괴 비스(이용하지 않는 한 서비스도에 의해 시작 startService()).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top