您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關在android中如何使用緩存和脫機存儲,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
緩存可以加速你的應用程序,即使在網絡不可用時,用戶能夠更加流暢地使用你的應用程序使用緩存是相當簡單的,需要一個單一的代碼行。
導入 import com.shephertz.app42.paas.sdk.android.App42CacheManager
即可,同時需要設置緩存策略。
Policy.CACHE_FIRSTSetting
將激活所有數據的讀操作首先從緩存中獲取,如果緩存中數據可用且沒有失效,就直接從緩存返回,否則進行網絡請求這個數據,同時將這個數據更新或加入緩存中,你可以通過API設置緩存失效期,缺省是1一個小時。
Policy.NETWORK_FIRST
首先從網絡獲取數據,然后更新緩存。如果網絡不可用,數據就從緩存中取出
cache.Policy.NOCACHEBy
這是App42 SDK
默認,不使用任何緩存,總是僅從網絡讀數據。
設置緩存策略如下:
App42CacheManager.setPolicy(Policy.CACHE_FIRST);
緩存失效期:
App42CacheManager.setExpiryInMinutes(<EXPIRY_TIME_IN_MINUTES>);
案例代碼如下:
UserService userService = App42API.buildUserService(); String userName = "Nick"; userService.getUser(userName,new App42CallBack() { public void onSuccess(Object response) { User user = (User)response; if(user.isFromCache()){ //Response coming from Cache System.out.println("userName is " + user.getUserName()); System.out.println("emailId is " + user.getEmail()); System.out.println("is from cache is " + user.isFromCache()); } else{ //Response From Server System.out.println("userName is " + user.getUserName()); System.out.println("emailId is " + user.getEmail()); } } public void onException(Exception ex) { System.out.println("Exception Message"+ex.getMessage()); } });
If Response is from cache you will get isFromCache flag to true in the response so you can identify that data is real time or data is coming from cache.
如果響應來自緩存,你在響應中通過isFromCache
標識為true
,這樣你能分辨數據是實時的還是來自緩存的。
下面是需要在manifest.xml加入的:
<receiver android:name="com.shephertz.app42.paas.sdk.android.App42BroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> <receiver android:name="com.shephertz.app42.paas.sdk.android.AlarmReceiver"/> <service android:name="com.shephertz.app42.paas.sdk.android.App42DataSyncService"/>
離線存儲允許你在本地網絡的情況下不可用提交數據,當網絡可用時,服務器會同步。這在許多情況下是非常有用的,例如如果你的用戶玩游戲,并取得了一些特定級別的完成。然而,在發送成績時,網絡斷了,那么他的得分可能會丟失,使用脫機緩存會在本地網絡無法獲得情況下,保存他的得分,并將于稍后網絡恢復可用時與同步服務器的。
使用脫機:
App42API.setofflineStorage(true);
案例代碼:
//Set Offline Storage to True App42API.setofflineStorage(true); String gameName = "<Enter_your_game/level_name>"; String userName = "Nick"; BigDecimal gameScore = new BigDecimal(3500); scoreBoardService.saveUserScore(gameName, userName, gameScore,new App42CallBack() { public void onSuccess(Object response) { Game game = (Game)response; if(game.isOfflineSync()) { //Request is saved in cache System.out.println("Information is Stored in cache, will send to App42 when network is available"); } else { //Response Received From Server and is Succeseful System.out.println("Server Response : " + game); } } public void onException(Exception ex) { System.out.println("Exception Message"+ex.getMessage()); } });
關于在android中如何使用緩存和脫機存儲就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。