2012-12-04 2 views
0

잠시 동안 downvotes를 누르고 다시 읽어주십시오. 내 질문에 후내 앱이 닫히는 경우 모든 것을 어떻게 종료하나요?

Is there a way to create a controlling instance that controls several activities of my app?

와 내가 궁금 detect when application is closed

을 읽고 ... 나는 장치가 있습니다에 대한 모든 하드웨어에 접근, 내 응용 프로그램에서 활동을 많이하고, 여러 서비스를 . 앱이 실행되는 동안에는 이러한 것들에 대한 액세스가 가능합니다. 활동은 바뀔 수 있지만 그러한 것들에 대한 접근의 필요성은 그 중 하나 하나에 있습니다 (약간의 과장).

나는 내 필요에 맞는 두 가지 방법을 알고 있습니다.

1) 내가 응용 프로그램을 확장하고 내가 등록을 취소하고자하는 두 경우 모두

활동의 서브 클래스에서 동일한 작업을 수행)가 그 접근을 일부 개체를 인스턴스화 또는 사방

2

를 필요한 물건을 계산 방송 수신기 및 서비스 중지. 서비스는 (이유로) 묶여 있지 않습니다. 일어날 수있는 모든 경우에 상황을 닫고 등록을 취소하는 올바른 방법은 무엇입니까? 난 내 프로세스가 폐쇄 통보하고 있지 않다

  • 들의 OnDestroy는 항상있다

  • 그래서 어떻게 내가 뭔가를 만들려면 어떻게해야합니까 시스템에 의해 사망 ​​/ 호출되지

    • 의 수 내 모든 활동에 대한하지만 중지하고 내 애플 리케이션을 닫을 때마다 정리?!

    답변

    1

    안드로이드에 '항상 존재합니다'라는 무언가를 만들 수 없으며 절대로 아키텍처의 일부가 아닙니다. 장치가 메모리가 부족하거나 잠 들어있는 경우 전화 서비스가 시작된 경우에도 서비스는 여전히 파괴 될 수 있습니다 (또한 ondestroy는 사용자가 지적한대로 보장되지 않습니다).

    준 개념에서 '살아있는 영원히'를 유지하는 가장 확실한 방법은 RTC_WAKEUP으로 반복되는 알람 일정을 설정하고 WAKE LOCK을 사용하는 것입니다.

    그러나 이러한 문제는 내일도 배터리없이 먹을 것입니다. 화면이 켜져있는 동안 모든 물건에 대해 염려하는 경우 대부분의 시나리오에서 깨우기 잠금을 사용하는 부정확 한 반복 RTC 경보가 제대로 작동하는 것 같습니다.

    편집 : 나는 당신의 질문에 간접적으로 대답했다. 그러나 위에서 언급 한 것 외에 리소스 선언을 완료하면 null이 선언되거나 등록이 취소된다. 물건을 등록하고 안드로이드가 서비스를 죽이고 onDestroy를 호출하지 않기로 결심했다면, 그것에 대해 할 수있는 일이 많지 않습니다. 계속 진행하십시오. (그리고 영구 저장소에 주를 저장해야합니다. 그들이 마지막으로 중단 된 상태에서 다음 init에서 그들을 찾아라.)

    관련 문제