2014-09-16 4 views
1

웹 서비스를 사용하여 Android 앱을 만들고 있습니다. 현재마다 서버에서 응답을받습니다. 네트워크가 실패하면 데이터를 가져올 수 없습니다. 빈 화면을 보여주는 활동. 빈 화면을 표시하는 대신 모든 데이터를 로컬로 저장하려고합니다.한 번 API에서 Android를 통해 데이터를 로컬에 저장하는 방법은 무엇입니까?

네트워크가 실패하면 로컬에서 가져 와서 표시하고 싶습니다.

어떻게 그럴 수 있습니까? 귀중한 아이디어를 공유하십시오.

IOS에는 값을 저장하는 핵심 데이터가 있습니다. Android에 해당 옵션이 있습니다

+0

에 래퍼 때 그 때 호출 웹 서비스에서 네트워크 availabel DB에 저장하고 DB에서 보여주기보다 – MilapTank

답변

0

앱이 처음으로 데이터를 가져 오면 다음에 로컬에 저장하려는 데이터를 로컬에서 저장하려고 할 때 다음에 실패 할 경우 로컬로 저장된 데이터를 표시하려고합니다. 내가 맞다면

MySqlite 데이터베이스에 가져온 데이터를 저장할 수 있습니다. android Database Tutorials

새 데이터가 웹 서비스에서 공개 될 때마다 로컬로 업데이트해야합니다. 그렇지 않으면 데이터베이스에 오래된 데이터가 있습니다.

1

서버에서 가져 오는 모든 데이터를 저장하는 sqlite 데이터베이스를 만듭니다.

SQLiteDatabase db = getWritableDatabse();

ContentValues contentValues = new ContentValues(); 
contentValues.put("ID", offlineData.getKey()); 
contentValues.put("RESPONSE_JSON", offlineData.getJson()); 
contentValues.put("LAST_UPDATED_TIME", 
     String.valueOf(offlineData.getUpdatedTime())); 
if(recordId==-1) { 
    recordId = db.insert(TABLE_NAME, null, contentValues); 
}else{ 
    recordId = db.update(TABLE_NAME, contentValues, "ID " + "="+offlineData.getKey(), null); 
} 
db.close(); 
0

(sqlite 위에 구축 된) 사용자 정의 컨텐츠 공급자를 사용하십시오. 수행하는 방법을 설명하는 인터넷에 많은 자습서 그래서

컨텐츠 제공자는 핵심 데이터와 유사하다 둘 장소로서 나는 항상 오전 현지에서 데이터를 표시하는 것처럼 SQLite는

관련 문제