저는 현재 안드로이드 스마트 폰 어휘 트레이너를 작업하고 있습니다. 여러 활동에서 사용할 수백 개의 색인 카드가 있습니다 . 새로운 활동이 필요할 때마다 데이터베이스에서 모든 인덱스 카드를로드하는 것은 너무 비쌉니다 . 때때로 활동 은 색인 카드를 수정합니다 . 수정 사항은 다른 모든 활동에도 표시되어야합니다.
질문:
모든 인덱스 카드는 IndexCard 유형의 ArrayList에 저장됩니다. Application 에서 확장되는 클래스에 저장해야합니까, 아니면 번들을 사용하여 전체 ArrayList를 활동에 전달해야합니까?
이 블로그는 내 첫 번째 아이디어는 좋은 습관이 아니라고 말합니다. http://www.developerphil.com/dont-store-data-in-the-application-object/
더 효율적이고 좋은 방법은 무엇입니까?
글쎄, 나는 당신이 이미 언급했듯이 그것을 데이터베이스에 저장하고 직렬화 된 객체를 보유하는 맵에 처음 시작할 때로 드하는 것을 선호합니다. 직렬화 된 객체를 저장하고 데이터베이스에 인덱스를 유지할 수도 있습니다. 따라서 인덱스를로드하고 필요에 따라 직렬화 된 객체에 대한 참조 만 있으면됩니다. 이러한 파일에 액세스하는 것은 데이터베이스를 읽는 것보다 훨씬 빠릅니다.
이것을 SingleTon Object에 저장하는 것은 좋은 생각이 아닙니다. GC가이 경우 및 / 또는 응용 프로그램을 매우 빠르게 파괴하기 때문입니다. "Soft-References"라고하는 것이 가장 좋은 방법입니다. 방대한 양의 데이터를 저장하고 싶다면 (내가 선호하지 않는) vanilla-java https://code.google.com/p/vanilla-java/wiki/HugeCollections 를 사용하는 것이 좋습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다