2017-03-21 4 views
1

다음 상황을 고려하십시오. 파일에 저장되는 많은 양의 데이터를 보유하는 응용 프로그램이 있습니다. 이 목적을 위해 onPause 메서드에서 AsyncTask를 생성합니다.onPause()의 파일 상태를 유지하는 데 너무 오래 걸린다

문제는 꽤 오랜 시간이 걸린다는 것입니다. 사용자가 활동을 닫은 다음 다시 시작하는 경우 일 수 있지만 활동이 다시 작성되기 전에 파일이 디스크에 완전히 저장되지는 ​​않습니다. 이러한 이유로 다음 실행시 활동에 잘못된 데이터가 들어 있습니다. 이 문제를 어떻게 처리 할 수 ​​있습니까? 즉, 다음 출시 전에 데이터가 디스크에 완전히 저장되었는지 확인하십시오.

+0

이 파일에 무엇을 저장하고 있습니까? 왜 데이터베이스를 사용하지 않습니까? –

+0

gson을 사용합니다. gson은 나중에 파일을 내보낼 때 유용합니다. 데이터베이스의 경우 동일한 문제가 아닌지 (너무 오래 걸릴 수 있음)? – AlexSee

답변

1

데이터가 이미 저장되어 있는지 여부 만 확인하면됩니다. 분명히, 사용자 정의 플래그, '만진'파일 등. 이 문제를 피하기 위해 UI 로직을 더 쉽게 만들 수 있습니다.

+0

내가 터치 된 파일을 사용한다고 가정하면 파일을 저장할 때 내 앱이 죽거나 사용 권한에 문제가 있고 파일을 건드릴 수없는 등의 문제에 대해 어떻게 탄력성을 보장 할 수 있습니까? 즉, 내가 파일을 만질 때까지 기다리는 상황과 오류가 발생한 상황을 어떻게 구별 할 수 있습니까? 또한 앱을 열어도 파일을 만질 때까지 기다리는 중 무엇을해야합니까? 진행률 막대를 표시하고 일정 간격으로 체크인합니까? – AlexSee

+0

내 연습에서는 전경 서비스와 start_sticky 플래그를 사용합니다. – Vyacheslav

+0

@AlexSee, 내 코드에서 거대한 작업은 활동이 아니라 서비스 내에서 실행되지 않습니다. – Vyacheslav