[问题] Content Provider 运作方式

楼主: darkk6 (Mr. Pan)   2015-07-02 21:57:52
大家好,想请问关于 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 ?
感谢大家~~~
作者: charlesdc (MoOn)   2015-07-04 00:39:00
先查一下cursor的特性应该就能猜出来 CP的问题我的经验是CP只是协定 cursor是类似指标的东西资料还是存在于原本的地方,所以关键应该在你监听的实作在什么元件上面

Links booklink

Contact Us: admin [ a t ] ucptt.com