2014-04-19 2 views
1

모바일에서 모든 단일 센서를 사용하는 앱을 개발 중입니다. 이제 배터리를 절약하기 위해 앱을 일시 중지하거나 닫을 때 작업 및 업데이트를 중단하고 싶습니다.센서를 사용할 때 어디에서 onPause 및 onDestroy를 사용해야합니까?

예를 들어 ActivityB에서 ActivityA와 GPS의 Camera를 사용합니다. 두 센서의 중지 작업을 하나의 클래스에 배치해야합니까 아니면 각 Activity와 연결된 센서를 중지해야합니까?

+1

중에 호출해야합니다. 호출하려면 'onDestroy'에 의존해서는 안됩니다. 쓰레드를 멈추고 자원을 해제하는 것은'onPause' 또는'onStop'에서 이루어져야합니다. 각각이 호출 될 때 명심하십시오. 'onPause'는 액티비티가 foreground를 떠날 때마다 호출되며 어떤 이유로 든 앱이 종료 될 때마다 onStop이 호출됩니다. 참고 : 'onPause' 및'onStop'은 앱이'onCreate'에서'finish()'된 경우 절대로 호출되지 않습니다 –

답변

1

나는 따라하지 않는다. 한 활동에서 GPS를 사용하는 경우이 활동에서이 기능의 시작/중지를 처리합니다. 다른 센서와 동일합니다 ... onStart()onStop()

+0

맞다면 센서를 처음부터 끝까지 또는 멈춤에서 활동으로 다시 처리해야합니다. 그들이 그들을 불렀다. 모든 것을 처리 할 수있는 글로벌 클래스/장소가 없어야합니까? – Fixus

+0

센서를 초기화하는 메소드에 액세스하는 글로벌 클래스를 가질 수 있지만 액티비티 라이프 사이클의 메소드에서 호출해야합니다. 예 : GPS 업데이트가 필요한 경우 onStart()에서 업데이트 수신을 시작하고 onStop() 중에 리소스를 해제하여 배터리 수명을 절약하십시오. – Michal