기본적으로 내 앱이 실행되는 동안 사용자가 기기의 표시 언어를 변경하면 Android는 활동을 삭제 한 다음 다시 만듭니다. 그것은 내 애플 리케이션이 올바르게 최신 설정을 사용하고 있는지 확인합니다.내 GLSurfaceView 앱이 Android 기기의 로켈을 읽을 필요가없는 경우 안전하게 로케일 설정 변경 사항을 무시할 수 있습니까?
매니페스트의 configChanges
특성에 locale
을 추가하여이 동작을 무시할 수 있습니다. 그런 다음 사용자가 언어를 변경하면 전체 다시 시작보다는 onConfigChanged()
으로 콜백 만받습니다. 그러나 documentation은 다시 "모든 리소스를 검색해야합니다"라고 말합니다.
이러한 구성 변경 사항은 모두 응용 프로그램에 표시되는 리소스 값에 영향을 미칠 수 있습니다. 따라서 onConfigurationChanged()가 호출되면 일반적으로 변경 사항을 올바르게 처리 할 수 있도록 모든 리소스 (뷰 레이아웃, 드로어 블 등)를 다시 검색해야합니다.
내 질문은 이것이 로캘 변경에 실제로 해당되는 것입니까? GLSurfaceView를 사용하여 사용자의 언어 설정을 전혀 사용하지 않고 그래픽 만 렌더링하는 가설 응용 프로그램이있는 경우이 이벤트를 무시하는 것이 안전합니까? 그렇다면 문서로 백업 할 수 있습니까?
이벤트를 무시하면 이 올바르게 작동하며, 어쨌든 로캘을 사용하지 않을 때는보기를 다시 만들지는 못하지만 어쨌든 소개하지 않을 것이라고 확신하고 싶습니다. 미묘한 버그.
모든 정보를 매우 높이 평가합니다. 당신이 말했듯이
틱,하지만 이것을 뒷받침 할 문서가 있으면 좋을 것 같습니까? – tenpn
답변을 편집하고 공식 Android 설명서 링크를 제공했습니다. – chrulri