2017-11-23 11 views
0

Android 용 미디어 플레이어 앱을 작성했습니다. 나는 onSaveInstanceState와 onRestoreInstanceState의 두통을 해결하기 위해 오랫동안 고려해 왔으며 스크린 회전에서 활동이 다시 시작되는 것을 막을 수있는 쉬운 방법이 있다는 것을 발견했다. 을 <activity> 태그 안에 사용했다. 솔직히 말해서 내 활동에 꽤 효과적입니다. 그러나, 나는 이것이 항상 잘되고 미래에 개발되는 응용 프로그램에 대한 문제를 만들지 모르겠다. 그건 그렇고, 나는 안드로이드 개발자에 게시 된이 사용에 대한 몇 가지 경고를 기억합니다.AndroidManifest.xml에서 활동 다시 시작을 방지하는 것이 항상 안전합니까?

는 기억 : 당신이 구성 변화를 처리 할 수있는 활동을 선언 할 때, 당신은 당신이 대안을 제공 하는 모든 요소를 ​​재설정 할 책임이 있습니다. 방향 변경을 처리하도록 이미지를 선언하고 가로와 세로 사이에서 변경해야하는 이미지가있는 경우 onConfigurationChanged() 중에 각 리소스를 요소에 각각 다시 할당해야합니다.

아이디어가 있으십니까?

+2

'configChanges' attr은 나쁜 생각입니다. https://stackoverflow.com/a/5336057/8298909 –

답변

1

가로 및 세로 방향에 동일한 레이아웃을 사용하는 경우 회전은보기 크기의 변경과 동일하므로 이러한 플래그를 사용하면 문제가 발생할 가능성이 거의 없습니다.

하지만 화면 회전만으로는 활동의 파괴 및 재현을 유발할 수있는 것은 아니며, 활동이 배경으로 표시 될 경우 활동이 적은 경우 사망 할 수 있음을 이해해야합니다. 상태 저장의 목적은 사용자가 파괴되었다는 것을 사용자가 알 수 없으면 재현됩니다. configChanges 플래그를 사용한다고해서 활동이 파기되거나 다시 작성되지 않으므로 상태 저장에 대한 책임을 면제하지는 않습니다.

onSaveInstanceState()onRestoreInstanceState()을 구현하는 데 관심이있는 경우 한 번의 앱 실행 중에 저장해야하는 활동 데이터와 앱 호출간에 저장해야하는 데이터를 고려해야합니다. SharedPreferences 저장소에 데이터를 저장하는 것과 같습니다.)