2011-07-31 6 views
0

필자가 쓰고있는 안드로이드 앱은 전경 어플리케이션이 아니더라도 많은 양의 배터리를 소모하는 것 같습니다. 내 가정은 애플리케이션이 포 그라운드에 있지 않을 때 gps, orientation 등의 청취자를 등록 취소해야한다는 것입니다.내 안드로이드 앱이 화면 상에 있지 않을 때 활동을 일시 중지해야합니다.

내가 바꾸는 다양한 활동이 있으며 그 사이를 전환하는 동안 청취자의 등록이 취소되지 않기를 바랍니다. 그러나 사용자가 집을 누르고 다른 앱으로 전환하면 (또는 전화 통화가 발생하거나 다른 경우) 내 앱이 아무 것도하지 못하게하려고합니다.

활동의 모든 on * 메소드는 해당 활동에만 적용됩니다. 내 응용 프로그램에서 완전히 전환하는 것을 어떻게들을 수 있습니까?

+0

활동이 변경 될 때 BroadcastReceiver를 사용하여 일부 코드를 실행합니다. – Phil

답변

2

내 가정은 응용 프로그램이 포 그라운드에 있지 않을 때 gps, orientation 등의 리스너를 등록 해제해야한다는 것입니다.

수정.

내가 바꾸는 다양한 활동이 있는데, 그 사이를 전환하는 동안 청취자의 등록이 취소되지 않기를 바랍니다.

물론 가능합니다. 각 활동은 주변에있는 (또는 그렇지 않은) 다른 활동에 대한 가정을하지 않고 독립적이어야합니다. 원하는 경우 각 활동에 묶여있는 서비스로이 자료를 옮길 수 있습니다.

내 응용 프로그램에서 완전히 전환을 수신 대기하려면 어떻게합니까?

Android에는 이러한 개념이 없습니다.

0

활동의 onpause에서 등록을 취소하고 활동 onresume에서 다시 등록 할 수 있습니다. 그게 내가 보통 gps 리스너를 다루는 방법이다.