2010-04-16 3 views
1

내 안드로이드 애플 리케이션에서 탭 중 하나로서 ListView 가진 탭 호스트 있습니다. ListView (주소)의 항목을 클릭하면 길 찾기를 위해 Google지도에 대한 의도가 시작되고 Google지도, 웹 브라우저 등의 선택 대화 상자가 표시됩니다. 하드 백 버튼을 누른 다음 실행 대화 상자가 사라지면 문제가 발생합니다. ListView도 지워집니다. 왜 그런가?안드로이드 ListView 하드 키를 누르면 지워집니다

+0

진단 할 정보가 충분하지 않습니다. 목록보기 및/또는 어댑터가 포함 된 코드를 게시해야합니다. – jqpubliq

답변

2

발신자 활동이 "일시 중지 중"이고 다시 시작하면 이 (가) 생성되어이 "다시 시작"됩니다. onSaveInstanceState을 무시하고 추가로 설정하여 번들을 통해 데이터를 전달하여 영구 데이터를 저장할 수 있습니다. 그런 다음 에 전달 된 번들의 추가 항목을 확인하고을 만들고 기능적으로 다시 시작하는 데 필요한 모든 작업을 수행하십시오.

복잡한 개체의 경우 serialize 할 수 있습니다 (필요한 경우 Serializable 구현). onSaveInstanceState 동안 번들에 추가 저장합니다.

+1

일시 중지 된 활동은 장치의 메모리가 매우 필요할 때만 해제됩니다. 그리고 그때조차도 부분적으로 볼 수 있기 때문에 다른 활동보다 우선 순위가 높으므로 백그라운드 앱이 먼저 실행되어야합니다. 아마도 onResume()을 통해서만 진행될 것입니다. – jqpubliq

+0

onResume 만 호출됩니다. onResume에서 processResults (results)를 호출했지만 processResults (results)에서 this.results가 전달 된 목록 일 때 this.results.clear()를 호출했습니다. processResults (new ArrayList (results))를 수행해야했습니다. inResume. –

관련 문제