搜索

首页  >  问答  >  正文

Android ContentProvider用法解惑

PHPzPHPz2773 天前715

全部回复(3)我来回复

  • 巴扎黑

    巴扎黑2017-04-17 17:05:14

    不好意思,又自问自答了。这个问题我已经在代码层面解决,解决方案是:

    1. 如果ContentProvider的update、insert、delete会影响到UI的显示,那代码中就不能直接操作DB了,而应该统一使用ContentProvider,同时需要注册ContentObserver进行Uri的监听,以便切换UI。

    2. 如果ContentProvider的操作不会影响UI,那就无所谓了。内部直接操作DB也是可以的。

    回复
    0
  • 迷茫

    迷茫2017-04-17 17:05:14

    根据ContentProvider定义,它是在不同应用中进行数据交换的标准API,当一个应用需要把数据暴露给其他应用时可以使用它,而其他应用可以通过ContentResolver去操作暴露的数据,通过ContentProvider暴露自己的数据操作接口,其他应用就可以通过该接口进行相应的增删改查操作。但通过ContentResolver操作本质就是调用了ContentProvider的操作,而其中的操作使用的还是SQLiteOpenHelper的db。所以个人认为不需要重写,不过这也是个人观点,还是要你自己去试试就知道结果了。

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:05:14

    应该是的,直接通过数据写的数据是应用私有数据,其他应用无法访问,不过如果DB文件在SD卡里面进行操作就好像可以访问。

    回复
    0
  • 取消回复