Android 오프라인 캐 시 구현 방법
네트워크 인 터 페 이 스 를 호출 한 후 자동 으로 캐 시 되 돌아 오 는 JSon 데 이 터 를 사용 할 수 있다 면 다음 에 네트워크 가 끊 긴 상태 에서 이 인 터 페 이 스 를 호출 하여 캐 시 된 JSon 데 이 터 를 가 져 올 수 있다 면 얼마나 좋 을 까?볼 리 가 그 랬 어.
따라서 오늘 이 글 은 Volley 가 자체 적 으로 가지 고 있 는 데이터 캐 시 를 사용 하여 유 니 버 설-ImageLoader 의 이미지 캐 시 와 결합 하여 네트워크 가 끊 긴 상태 에서 그림 과 글 을 표시 하 는 것 을 소개 합 니 다.
실현 효과
어떻게 실현 합 니까?
1.Volley 를 사용 하여 네트워크 인터페이스 에 접근
/**
*
*/
private void getData() {
StringRequest stringRequest = new StringRequest(Request.Method.POST, TEST_API, new Response.Listener<String>() {
@Override
public void onResponse(String s) {
textView.setText("data from Internet: " + s);
try {
JSONObject jsonObject = new JSONObject(s);
JSONArray resultList = jsonObject.getJSONArray("resultList");
JSONObject JSONObject = (org.json.JSONObject) resultList.opt(0);
String head_img = JSONObject.getString("head_img");
ImageLoader.getInstance().displayImage(head_img, imageView);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("phone", "15962203803");
map.put("password", "123456");
return map;
}
};
queue.add(stringRequest);
}
인터페이스 접근 이 성공 하면 Volley 는 이번 기록 을/data/data/{package name}/cache/volley 폴 더 에 자동 으로 캐 시 합 니 다.위의 파일 을 열 면 인터페이스의 경로 와 반환 값 이 이 파일 에 저 장 된 것 을 발견 할 수 있 습 니 다.
네트워크 가 끊 긴 상태 에서 이 인터페이스의 캐 시 반환 값 을 어떻게 가 져 옵 니까?
RequestQueue 가 제공 하 는 getCache()방법 으로 이 인터페이스의 캐 시 데 이 터 를 조회 합 니 다.
if (queue.getCache().get(TEST_API) != null) {
String cachedResponse = new String(queue.getCache().get(TEST_API).data);
2.Universal-ImageLoader 로 그림 불 러 오기
ImageLoader.getInstance().displayImage(head_img, imageView);
주의 점1.위의 캐 시 파일 을 살 펴 보면 볼 리 는 인터페이스 경로 만 캐 시 하고 캐 시 인터페이스 에 들 어 오 는 인자 가 없 기 때문에 페이지 를 나 누 어 조회 하면 이 방법 을 사용 하 는 것 이 타당 하지 않다.
2.테스트 과정 에서 캐 시 데 이 터 를 가 져 오지 못 할 때 도 있 고 가 져 올 때 도 있 습 니 다.캐 시 를 가 져 오 는 코드 지연 로드 는 이 문 제 를 효과적으로 해결 할 수 있 습 니 다.
3.캐 시 만 료 정책 을 고려 하면 더 좋 은 ASimple Cache 프레임 워 크 를 사용 하여 개발 을 보조 할 수 있 습 니 다.캐 시 에 대한 요구 가 더 높 은 앱 은 여전히 파일 캐 시 나 데이터베이스 캐 시 를 사용 해 야 한다.
이상 의 내용 은 소 편 이 소개 한 안 드 로 이 드 가 오프라인 캐 시 를 실현 하 는 방법 입 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.