2014-03-13 2 views
1

활동이 종료 된 경우에도 실행해야하는 Android 서비스가 있습니다!StopService 또는 Handler 콜백 제거 (배터리 소모)

화면에 이 표시되면 서비스에 아무 것도 할 필요가 없습니다.

화면이 나타나면 에게 보내십시오. 서비스가 시작됩니다.

그래서 내 질문은 더 나은 제거 모든 핸들러 콜백 (유지 서비스) 또는 화면이 다시 시작 서비스를받을 때 전체 서비스를 중지하고, 무엇입니까?

감사합니다.

답변

2

기본적으로 실행중인 모든 서비스가 필요하지 않으면 중단하는 것이 좋습니다.

배터리 사용 측면 - Service 자체는 배터리 소모에 큰 영향을 미치지 않지만 서비스가 여전히 살아 있다면 - 전체 프로세스가 여전히 살아있는 한 - 앱이 여전히 RAM 용량을 소비한다는 것을 의미합니다. "달리기"라고 생각했습니다. 앱이 실행중인 사실 자체가 배터리 수명에 영향을주지 않는다고 가정 해 봅시다. 의이 문제를 수행하고 배터리 수명에 큰 영향을 미칠 수 있는지

하지만 (그리고 큰 거기지만)

당신이 당신의 서비스 내에서 무엇을하고 있는지 입니다.

귀하의 질문에서 나는 당신이 어떤 시간 간격으로 일부 코드를 실행하고 있다고 가정 할 수 있습니다 - 따라서 각 실행 CPU 시간을 소비하고 있으며 심지어 더 나쁠 수도 있습니다 - 네트워크 요청 수행/IO 파일 작업 수행 그래서 에. 이러한 작업을 자주 수행하려면 could drain very fast the battery, 가능한 한 많이 피해야합니다. 당신은 내가 언급 한 작업에서 하나 이상을 수행하는 경우

때문에, - 도전적으로 화면이 꺼져있을 때이를 수행하지 더 나은 것, 그리고뿐만 아니라 당신은 또한 ...

I 조언을 자신의 콜백을 무시 당신이 당신에게 서비스를 중지하고, 다음 시스템이 더 많은 작업을 수행합니다/오프 이벤트에 모든 화면에서 서비스 시작을 다시하면 그것은 당신이 전체 그림을 이해 할 것입니다 http://www.youtube.com/watch?v=OUemfrKe65c

...

0

Service의 요점은 활동이 표시되지 않거나 화면이 꺼진 경우에도 백그라운드에서 실행할 수 있다는 것입니다. 서비스가 배터리를 소모하지 않고 아무것도하지 않으면 (경우에 따라 화면이 꺼지는 경우)

희망이 있습니다.

1

- 전체 비디오를 볼 활성 상태로 유지하고 처리기를 등록 취소하는 경우보다 시스템은 스레드 나 캐시가있는 경우 서비스를 다시 작성해야하며, 서비스를 다시 작성해야합니다. 또한 포 그라운드 서비스가있는 경우 서비스 아이콘이 계속 나타나고 사라지는 것을 볼 수 있습니다.

나는 계속 시작하겠다. 리소스를 전혀 소비하지 않도록 모든 핸들러를 제거하십시오.

+0

답변 해 주셔서 감사합니다. – Trxplz0

관련 문제