화면 방향이 바뀌면 응용 프로그램에서 블루투스 연결을 다시 설정하기를 원합니다. onRetainNonConfigurationInstance()로 저장하고 getLastNonConfigurationInstance()로 복원 할 수있는 BT 직렬 서비스 데이터 등을 저장하는 SavedState 객체가 있지만 화면의 방향이 바뀔 때 TextView 필드가 더 이상 업데이트되지 않습니다.onRetainNonConfigurationInstance()를 사용하면 TextViews가 사라집니다.
레이아웃을위한 두 개의 xml 파일이 있습니다. 하나는 레이아웃 포트에, 다른 하나는 레이아웃 랜드 폴더에 각각있는 것으로보기를 다시 포맷합니다. TextView ID는 두 XML 파일에서 동일하며 위치 만 변경됩니다.
재정의 된 onRetainNonConfigurationInstance()에 대한 호출을 주석 처리하면 TextViews가 다시 표시되지만 물론 더 이상 BT 장치에 자동으로 다시 연결할 수 없습니다.
onDestroy()를 호출하면 BT 서비스가 중지되므로 화면이 변경 될 때마다 BT 서비스가 다시 설정되어야합니다.
onRestoreInstanceState() 및 onSaveInstanceState()에 대한 재정의 된 호출이 효과가없는 것처럼 보입니다.
누구나 올바른 방향으로 나를 가리킬 수 있습니까? 사라지는 뷰는 영구적입니다. 즉, 한 방향에서 다시 변경하면 TextView가 복원되지 않습니다.
onRetainNonConfigurationInstance (및 가져 오기)를 사용하지 마십시오. 그들은 더 이상 사용되지 않습니다. –
하나의 활동 또는 단편을 사용하고 있습니까? –
그리고 ... 일부 ACtivity (또는 조각) 코드를 게시하십시오. –