2014-07-09 7 views
1

내 애플리케이션에서 실행되는 여러 개의 쓰레드가 있는데, 모두 빈 슬릿()이없는 while (true) 루프가있어 빈민가 액션 리스너로 작동하는 경우에는 부정적입니다 배터리 수명에 영향을 줍니까? 그러나 일반적인 로직을 사용하면 프로세서가 while 루프를 지속적으로 모니터링하는지 여부가 확실하지 않아 상당한 배터리 손실을 초래할 수 있습니다.안드로이드 쓰레드와 배터리 수명

+0

제 질문에 대한 늦은 의견입니다. 그러나 일어날 수있는 상황을 확인하기 위해 while (true) 루프를 사용해서는 안됩니다. (true)는 해당 스레드의 CPU 100 %를 소모하고 배터리를 소모합니다. – NeoMime

답변

1

listeners/while 루프 내에서 수행하는 작업으로 귀결됩니다. 센서 또는 CPU 집약적 인 작업 또는 네트워크 I/O를 사용할 수있는 Wi-Fi와 같은 것들이 포함된다면 꽤 분명합니다. 그렇지 않으면 잘해야합니다. 주로 OS 기능 중 일부는 백그라운드에서 동일한 기능을 수행합니다.

하지만 안드로이드에서 이런 것들을 다루는 것이 더 좋은 방법 인 것 같습니다. 왜 그런 시도를하지 마십시오.

+0

비슷한 질문에 대한 비슷한 응답을 보았지만 "집중적 인"것은 무엇입니까? 내 생각에는 카운트를하지 않는 while 루프를 사용하는 것이 집중적 인 것으로 보이거나 잘못 되었습니까? – NeoMime

+0

간단한 증분이 집중적으로 적합하지는 않지만, BigInteger/BigDecimal을 사용하는 몇 가지 고차원 계산은 토스 (for your supto)로 CPU를 보낼 수 있습니다. 앞서 언급 한 것처럼 센서, 비트 맵 조작, 인코딩 디코딩 비디오 등이 집중적 인 경우 활성화하십시오. – humblerookie

+0

@humblerookie이 문제를 지원하거나 자세히 설명 할 수있는 참조가 있습니까? 일반적인 자바에서는 인터럽트 대기 (예 : 명시 적 대기, 잠금, 동기화, I/O)를 수행하지 않는 것은 CPU가 순환 루프로 빠르기 때문에 간단한 "count ++"를 포함하여 "집중적 인"것으로 간주됩니다 가능하다면. –

관련 문제