[問題] Content Provider 運作方式

看板AndroidDev作者 (Mr. Pan)時間10年前 (2015/07/02 21:57), 編輯推噓0(004)
留言4則, 1人參與, 最新討論串1/1
大家好,想請問關於 Content Provider 的問題 主要是想了解 Content Provider 是否有類似生命週期的流程 (感覺上好像是沒有啦?) 原因有點長,先感謝大家的耐心觀看~ 我主要想問這個問題的原因是,我寫了一個 Content Provider 提供我自己寫的其他 App 能夠存取 Database 資料 透過 Clipboard 的 OnPrimaryClipDataChange (反正就是監聽剪貼簿) 監聽當剪貼簿內容更動時,紀錄剪貼簿中的內容到 database 中 由於功能中有讓使用者設定紀錄上限,因此當剪貼簿資料改變時: 1. 若紀錄中有一模一樣的文字,則跳過 2. 檢查紀錄是否已達上限 3. 若有到上限刪除最舊的一筆 4. 將新的資料 insert 到 Database 中 我現在考慮的點在於,是否這些步驟都透過直接操作 DB 處理,如: 1. SELECT 1 FROM table WHERE data='XXXXXXX' 2. SELECT count(id) FROM table; .... 依此類推 還是要在 Content Provider 中先建立 Cache 用的 HashMap 或 ArrayList, 在第一步時直接用 map.contains("XXXX") 來決定是否往下做 但問題就在於,這個 map 存在記憶體中的時間到底有多久? 如果 Content Provider 呼叫完就會消失,那我建立這個 cache 的 HashMap 就沒有意義了。 另外就是,假設呼叫後不會消失,那麼 App_A 和 App_B要新增資料時,這個 HashMap 會不會遇到類似 Thread safe 的問題,或者他們根本是兩個不同的 instance ? 感謝大家~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.162.231 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1435845474.A.C16.html

07/04 00:39, , 1F
先查一下cursor的特性應該就能猜出來 CP的問題
07/04 00:39, 1F

07/04 00:43, , 2F
我的經驗是CP只是協定 cursor是類似指標的東西
07/04 00:43, 2F

07/04 00:44, , 3F
資料還是存在於原本的地方,所以關鍵應該在你監聽的
07/04 00:44, 3F

07/04 00:45, , 4F
實作在什麼元件上面
07/04 00:45, 4F
文章代碼(AID): #1LbKDYmM (AndroidDev)