Android cookie 之異步存儲


android Cookie保存到database是異步實現的。

CookieSyncManager繼承 WebSyncManager, 是負 責cookie從內存到持久存儲的 類,cookie 的同步可以分為自動同步和強制同步兩種.

1. 自動同步
自動同步 是每過5分鍾同步一次,是開啟一個線程來負責ram到 database的同步,這個線程維護消息隊列,線程啟動時發一個delay時間為 SYNC_LATER_INTERVAL(5min)的 消息
   Message msg = mHandler.obtainMessage(SYNC_MESSAGE);
   mHandler.sendMessageDelayed(msg, SYNC_LATER_INTERVAL);
   每次處理完這個消息會添加另外一個delay為5min的消息。

2.強制同步
強制同步調用sync()接口
 public void sync() {
        if (DebugFlags.WEB_SYNC_MANAGER) {
            Log.v(LOGTAG, "*** WebSyncManager sync ***");
        }
        if (mHandler == null) {
            return;
        }
        mHandler.removeMessages(SYNC_MESSAGE);
        Message msg = mHandler.obtainMessage(SYNC_MESSAGE);
        mHandler.sendMessageDelayed(msg, SYNC_NOW_INTERVAL);
    }
sync方法是觸發一個delay為100毫秒的消息。

不管哪種,cookie保存是通過另外一個線程的Handler來實現的,需要Looper到這個消息才去做持久化操作,是 異步實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM