看板 AndroidDev 關於我們 聯絡資訊
大家好,想請問關於 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
charlesdc: 先查一下cursor的特性應該就能猜出來 CP的問題 07/04 00:39
charlesdc: 我的經驗是CP只是協定 cursor是類似指標的東西 07/04 00:43
charlesdc: 資料還是存在於原本的地方,所以關鍵應該在你監聽的 07/04 00:44
charlesdc: 實作在什麼元件上面 07/04 00:45