다른 방법으로 정상적인 시스템 동작을 트리거 할 수있는 방법이 있습니까?
alwaysRetainTaskState를 테스트하는 가장 쉬운 방법은 액티비티를 종료하고 많은 메모리를 사용하는 여러 응용 프로그램 (하나씩 차례대로)을 시작하는 것입니다. 그것의 반복적이지만 상당히 신뢰할 수 있습니다. 내가 적절한 애플리케이션을 골라 내면 약 40 초 후에 갤럭시 S-II에서 트리거를 실행할 수있다.
그 짧은 말로,이 플래그를 테스트하는 다른 직접적인 방법이 없습니다.
플래그 android : clearTaskOnLaunch를 설정하면 앱을 다시 실행하면 alwaysRetainTaskState와 동일한 작업을 수행 할 예정입니까?
절대적으로 아닙니다. ClearTaskOnLaunch
은 기본적으로 앱이 루트 활동으로 돌아갈 것을 의미합니다. 다른 모든 활동은 활동 스택에서 제거됩니다. 즉, 귀하의 활동이 자녀 활동에 의존하여 콘텐츠를 제공하면 모든 것이 손실됩니다. 즉, 사용자가 응용 프로그램의 활동 스택의 초기 상태로 되돌아갑니다. 그것 의 상태를 유지 활동은 alwaysRetainTaskState 플래그에 따라 다릅니다.
추가 정보
alwaysRetainTaskState
는 루트 활동에서만 유용합니다. 그것의 기본 목적은 그것과 모든 다른 활동들을 오랜 기간 동안 유지하는 것입니다. 해당 액티비티에 직접 연결되지 않은 객체는 유동적이어서 버려 질 수 있습니다. 종종 alwaysRetainTaskState
이 작동하지 않으면 코드가 수동으로 참조를 없애기 때문입니다 (일반적으로 onPause()
또는 유사한 이벤트에 대한 응답으로).
응용 프로그램은 확실히 여기에 맞는 용어가 아닙니다. 활동은 기억 때문에 죽습니다. 모든 구성 요소가 살아있는 한 응용 프로그램은 항상 살아 있습니다. 또한 사용자의 코드를 보지 않았고 반드시 유효하지 않은 가정을하고 있습니다. 이 동작은 Applicatio 개체에 정보가없는 경우 확실히 발생할 수 있습니다. 마지막으로, 그것은 어떤 식 으로든 OP 질문을 다루지 않습니다. OP는 깃발을 테스트하려고합니다. –