2017-03-09 14 views
0

안드로이드 앱은 처음에 데이터베이스에서 읽을 수있는 잠재적으로 많은 양의 데이터를 메모리에 저장합니다. 이 데이터를 데이터베이스에서 메모리로 읽는 작업은 잠시 걸리며이 데이터를 프로그램 실행 사이의 파일에 직렬화하고 캐시하고 싶습니다. 그래서 매번 데이터베이스에서 읽을 필요가 없습니다. 데이터베이스 오버 헤드를 제거하여 응용 프로그램을 시작합니다.안드로이드 애플리케이션 레벨 데이터 (액티비티 데이터가 아님)를 저장할 때

이 데이터는 내 Application 클래스가 아닌 내 Application 클래스의 멤버에 저장됩니다. 올바르게 이해하면 응용 프로그램 클래스가 주요 활동이 파괴되어 다시 생성 될 때 (예 : 화면 회전) 지속될 수 있습니다. 이것은 좋다. 그러나 응용 프로그램 자체가 손상 될 시점을 알 필요가 있습니다. 따라서 응용 프로그램 클래스에 저장된 데이터가 손실 될 예정입니다. 따라서 파일에 캐시 할 수 있습니다.

내 주요 활동의 onSaveInstanceState를 사용하고 싶지 않습니다. 캐싱이 필요 이상으로 자주 발생하기 때문에 (다소 비싼 작업 일 수 있기 때문에 원하지 않습니다).

이 문제를 해결하기 위해 재정의 할 수있는 Application 클래스의 메서드가 있습니까?

그렇지 않은 경우 다른 방법이 있습니까?

답변

0

메모리에 데이터를 보관하고 최대 반응을 위해 작업하십시오. UI를 업데이트하고 데이터베이스에 데이터를 저장하십시오. 새 데이터를 저장할 때 오류가 발생하면 UI에 알립니다. 그런 식으로 Application 인스턴스가 파기 될 때 걱정할 필요가 없습니다.

+0

제 질문에 언급했듯이 이미 데이터를 메모리에 보관하고 있으며 데이터베이스에 저장하고 있습니다. 나는 내가 묻고있는 질문을 놓친 것 같아. – JoeMjr2