簡體   English   中英

我應該將我的聯系人列表存儲在 DB 或 Sharedpreference 中以避免運行相同的任務

[英]Should I store my contacts list in DB or Sharedpreference to avoid running the same task

我有我的應用程序,當輸入某個活動時,我會在手機中顯示聯系人列表(類似於聊天應用程序,您在嘗試開始新聊天時會看到聯系人列表)。 因此,我只想了解這些任務的實施細節,以實現最佳/高效工作。 每當我進入活動時,是否每次都從我的設備中獲取聯系人列表(這實際上是多余的,因為我們可能一遍又一遍地做同樣的工作,但是我們不能依賴 DB/SharedPref 中保存的數據,因為聯系人數據是動態的並且一定會改變,所以需要你的專家建議如何以最佳方式實際完成這項工作(我已經編寫了獲取聯系人的方法 - 所以我應該每次都重新獲取聯系人還是有任何其他方式,流行的聊天應用程序是什么?每次都顯示聯系人?

就個人而言,我會在定期調用的后台線程(使用coroutines )上實現聯系人的獲取(可能是每次創建活動時,如您所建議的那樣,或者可能在他們打開應用程序時一次)。

因為它在后台線程上,所以它會阻止他們使用應用程序(或創建活動時的任何丟幀)。 他們可能有數千個聯系人,或者正在使用非常慢的設備。

據推測,您可能希望存儲與每個聯系人關聯的一些其他數據:例如,如果您打開與用戶的聊天,您希望將所有消息與用戶關聯,因此我將使用realm 之類的數據庫而不是而不是共享偏好。

所以整個過程可能看起來像這樣:

  • 打開應用程序會觸發一項服務,該服務會在后台線程上獲取用戶的所有聯系人。
  • 服務會更新數據庫,可能會刪除不存在的聯系人並添加新聯系人。
  • 如果您在視圖 model中處理此問題,您的片段或活動可以觀察聯系人列表並在更改后更新 UI。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM