2013-10-01 2 views
0

데이터를 파일에서 읽고 나중에 동일한 파일에 다시 저장해야하는 Android 앱을 만들고 있습니다.Android 앱의 파일은 언제 데이터를 읽고 저장해야합니까?

기본적으로,이 내 응용 프로그램이 작동하는 방법입니다

MainActivity : 사용자 입력이 FieldActivity가 시작된 후, 읽기 할 파일을 결정합니다.

FieldActivity : 파일에서 읽은 Data 유형의 개체를 표시합니다. 사용자는 Data 객체에 저장된 정보를 변경할 수 있으므로 응용 프로그램이 닫힐 때 파일에 다시 저장해야합니다. 그러나이 Data 객체는 FieldActivity가 실행되는 동안 동일한 객체입니다. 사용자는 MainActivity로 돌아가서 읽을 다른 파일을 선택할 수 있습니다. 그러면 새 Data 객체가 생성됩니다.

FieldActivity의 onStop() 또는 onPause() 메서드로 파일에 데이터를 저장해야합니까? 세로 방향과 가로 방향을 변경할 때마다 이러한 메서드가 호출되는 방식을 보는 것이 더 좋은 방법인지는 확실하지 않았습니다. 그러나 나는 더 나은 선택을 생각할 수 없다.

편집 : onBackPressed()에 저장할 수 있지만 사용자가 집 버튼을 눌러 종료하면 저장되지 않습니다.

사용자가 MainActivity에서 단추를 클릭 한 다음 즉시 FieldActivity를 시작할 때 호출되는 메서드에서 파일의 데이터를 읽습니다. 그러나이 데이터는 FieldActivity의 방향 변경 사이에서도 동일한 객체 여야합니다. 정적 필드에 저장할 수는 있지만 나쁜 습관이라고 들었습니다. 따라서 더 나은 방법이 있다고 가정합니다.

요약 : 파일에서 데이터를 읽고 사용자가 변경 한 후에 파일에 다시 저장해야합니다. 애플리케이션 라이프 사이클에서이를 수행하기에 가장 좋은시기는 언제입니까?

(내가 StackOverflow에 새로운 해요.이 질문에 이미 요청 받았다 특히, 내가 잘못했던 것을 사전에 죄송합니다.)

답변

0

안녕하세요을하고 :) 스택 오버플로에 오신 것을 환영합니다. 음 ... 나는 당신이 edittext에서 얻은 정보를 이해하고 활동을 떠나기 전에 파일에 다시 저장하려고한다는 것을 이해했습니다 ... 사실이라면 뒤로 누르기 버튼을 사용하여 모든 것을 저장할 수 있다고 가정하면 onBackPressed 메소드를 오버라이드에 ...

하지만 그것은 모두 당신이 모든 것을 저장할 경우에 따라 다릅니다

onPause()가 - 때처럼 (응용 프로그램이 부분적으로 가려진하지만 여전히 볼 여전히 FG에서 실행되는 경우라고 대화 상자를여십시오). onStop() - 앱이 더 이상 보이지 않을 때 호출되며 완전히 다른 활동으로 돌아갈 때까지 기다립니다 (죽이지 않았다면). 당신이 활동 라이프 사이클에 익숙하기를 바랍니다 ... 그것은 언제 새로운 데이터를 저장하길 원하는지에 달려 있습니다. 나는 당신이 활동을 떠나기 전에 말할 것이다. 그래서 finish()를 호출하기 전에 ... 이것은 보통 사용자가 원하는 것을 설정했을 때 ... onBackPressed를 저장한다 ... onStop 또한 유효하다. 솔루션 ... 당신의 활동 흐름을 어떻게 계획했는지 확신 할 수 없지만 ... 나를 위해 ... onBackPressed 또는 onStop ... onPause ... 여기 도움이되지 않습니다 ...

+0

감사합니다. 한 가지 문제가 있습니다 : 사용자가 FieldView에 있고 앱을 종료 할 때 (예 : 홈 버튼을 누르면), 코드를 저장하는 코드가 onBackPressed()에 있으면 데이터가 제대로 저장되지 않습니다. – ItsTimaiFool

+0

홈 버튼을 클릭하면 onStop에 저장되므로 모든 데이터가 저장됩니다. 그러나 기록을 지우면 올바른 결과를 얻습니다. 응답을 얻었습니다. –

관련 문제