2013-12-19 1 views
2

android에서 sax 파서를 사용하여 RSS 피드를 구문 분석하고 있습니다. 인터넷에 연결되어있을 때 온라인으로 데이터를 표시 할 수 있지만 인터넷/wifi에 다시 연결되면 오프라인으로 작동하고 업데이트하기를 원합니다. 나는 그것에 대해 갈 방법이 없다.Android 오프라인으로 사용하기 위해 데이터베이스에 구문 분석 된 데이터를 피드에 저장

지금 최선의 접근 방법은 무엇입니까? SQL 데이터베이스를 생성해야합니까? 내가 이미지를 가지고 있다고 생각하면. 또는 다른 간단한 방법이 있습니다. 나는 더 쉬운 방법을 선호 할 것이다.

SQL 데이터베이스 접근법에 대한 추가 제안이 필요합니다. 첫 번째 : RSS 피드에 이미지 URL 링크가 있습니다. 런타임에 비트 맵과 인스 트림을 사용하여 디플레이링하지만 오프라인 용도로는 whatsapp와 같은 완벽한 이미지를 저장해야합니까? 이게 옳은 거니 ? 그렇다면 데이터베이스에 전체 이미지를 저장하는 방법은 무엇입니까? 그리고 마지막으로 내부 메모리가 아닌 SD 카드에 전체 데이터베이스를 저장하고 SD 카드에 데이터를 저장하면 문제가 생길 수 있습니까? whatsapp는 내부 메모리에 상당한 데이터를 저장하기 때문에 !! SD 카드에 저장하는 것이 문제가 아닌 경우 SD 카드에 전체 데이터를 저장하는 방법은 무엇입니까?

답변

2

데이터가 지속되는 기간에 따라 다릅니다. 스스로에게 질문하십시오 :

휴대 전화를 재부팅 한 후나 응용 프로그램을 강제 종료 한 후에이 데이터를 사용할 수 있어야합니까? 마지막 시간에 관계없이 가능한 한 최신 상태로 연결해야합니까?

그런 경우 예 - 데이터베이스를 사용해야합니다. Android에는 sqlite 데이터베이스 용 헬퍼 클래스가 내장되어 있습니다. 당신이 시작해야

http://developer.android.com/training/basics/data-storage/databases.html

.

이미지는 db의 이미지에 대한 참조를 숨기고 있기 때문에 꽤 직선적입니다. 당신은 물론뿐만 아니라 디스크에 이러한 이미지를 작성합니다 (SD 카드 또는 다른 장소에 ...) 참조 :

Save bitmap to location

귀하의 다른 옵션을, AFAIK 있습니다

1) 된 SharedPreferences (이것에 정말로 적합하지 않다).

2) 데이터를 직렬화하고 일부 파일에서 쓰거나 읽는 중.

여전히 데이터베이스의 개념과 안드로이드에 대한 자세한 정보를 찾고 있다면

, 여기에 주제에 대한 아주 좋은 튜토리얼 :

http://www.vogella.com/articles/AndroidSQLite/article.html

+0

더 나은 데이터베이스 코드 구현을 공유 할 수 있습니까? 내 List of objects에서 데이터베이스에 읽고 쓰는 것을 보여줍니다. 내 자바 개체 "데이터"는 다음과 같습니다 : 공용 클래스 데이터 { \t \t 개인 문자열 할인; \t 개인 문자열 위치; \t 개인 문자열 이름; \t private String Image; \t 전용 문자열 설명; \t } 구문 분석 후에 이러한 개체의 목록을 가져옵니다. – gandharv09

+0

링크 된 안드로이드 문서를 읽으시 길 바랍니다. 그 문서는 매우 철저하게 주제를 다루고 있으며, 많은 예제 코드를 가지고 있습니다. –

+0

좋은 db 튜토리얼 링크를 추가하여 문서보다 완전한 코드 그림을 제공합니다. –

0

당신은 RSS 피드 및 캐시를 다운로드 droidQuery을 사용할 수 있습니다 it. 당신이 android-rss 라이브러리를 사용할 것으로 예상 this gist, 오프 작동, 당신은 당신의 AjaxOptions 객체에 다음 캐시 플래그를 추가 할 수 있습니다 : 이것은 당신이 명시 적으로 호출 할 때까지 그렇게 응답을 캐시 할 것

.cache(true).cacheTimeout(AjaxCache.TIMEOUT_NEVER) 

:

AjaxCache.sharedCache().clearCache(); 

네트워크 연결 후 수행 할 수있는 작업 (이 경우 도움을 받으려면 NetWatcher을 확인하십시오).

캐싱 메커니즘을 사용하면 앱 프로세스가 작동하는 동안 만 저장하는 매우 간단한 솔루션을 사용할 수 있습니다. 세션 전체를 저장하려는 경우 사용자가 나중에 앱을 열고 온라인 상태가 아닌 경우 SharedPreferences 또는 SQLite과 같이 더 복잡하고 오래가는 것을 사용하는 것이 좋습니다. 좋은 옵션리스트는 here입니다.

관련 문제