我有一個應用程序,它從Parse.com獲取數據,並在2個部分中使用,一個在listView中,另一個在網格視圖中使用。Android上的緩存
所以我想緩存這些數據(字符串,位圖),脫機工作,只要設備沒有互聯網,所以它從緩存加載。而且,每當我的應用程序關閉並再次打開時,它應該更新緩存的數據,如果有互聯網。 在更新過程中,如果我的緩存中有相同的數據,它不應該再次創建它,它只能創建新的並更新視圖。
在android中這樣做的最好方法是什麼? 謝謝。
我有一個應用程序,它從Parse.com獲取數據,並在2個部分中使用,一個在listView中,另一個在網格視圖中使用。Android上的緩存
所以我想緩存這些數據(字符串,位圖),脫機工作,只要設備沒有互聯網,所以它從緩存加載。而且,每當我的應用程序關閉並再次打開時,它應該更新緩存的數據,如果有互聯網。 在更新過程中,如果我的緩存中有相同的數據,它不應該再次創建它,它只能創建新的並更新視圖。
在android中這樣做的最好方法是什麼? 謝謝。
要緩存圖像,您可以使用一些庫:Glide,Picaso ... 要緩存文本,您需要使用HttpClient設置緩存。例如:
private void configureCache() {
if (cache == null)
cache = createHttpClientCache(context);
mHttpClient.setCache(cache);
mHttpClient.networkInterceptors().add(REWRITE_CACHE_CONTROL_INTERCEPTOR);
}
private static Cache createHttpClientCache(Context context) {
File cacheDir = context.getDir("cache_api", Context.MODE_PRIVATE);
return new Cache(cacheDir, HTTP_CACHE_SIZE);
}
緩存數據來形式的Webservice
用於獲取數據U可以使用排或讓你可以將其設置爲用戶所需屬性的數據緩存都庫給出的數據後改造用於保存數據的緩存選項嘗試使用該庫。
感謝您的評論,我已經通過parse.com api輕鬆獲取數據,我只是不知道在哪裏緩存它的最佳方式。 但是,我會嘗試。 @antosh rawat – Shant11
試試這個代碼,它將幫助 -
File cacheDir = getBaseContext().getCacheDir();
File f = new File(cacheDir, "pic");
try {
FileOutputStream out = new FileOutputStream(
f);
pic.compress(
Bitmap.CompressFormat.JPEG,
100, out);
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Intent intent = new Intent(
AndroidActivity.this,
OpenPictureActivity.class);
startActivity(intent);
,然後在新的活動 -
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.open_pic_layout);
File cacheDir = getBaseContext().getCacheDir();
File f = new File(cacheDir, "pic");
FileInputStream fis = null;
try {
fis = new FileInputStream(f);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(fis);
ImageView viewBitmap = (ImageView) findViewById(R.id.icon2);
viewBitmap.setImageBitmap(bitmap);
你可以在android中使用'shared preference',因爲它可以將數據保存在你的應用程序緩存中,並保護數據。欲瞭解更多信息請點擊此鏈接 - [http://stackoverflow.com/questions/23024831/android-shared-preferences-example](http://stackoverflow.com/questions/23024831/android-shared-preferences-example) – sud
@ sud。感謝您的評論,我認爲不建議將共享首選項中的位圖保存起來,我錯了嗎? 謝謝。 – Shant11
是的,我想你想保存字符串值... – sud