Android成长之路-重要组件之ContentProvider
分类:
文章
•
2023-11-18 22:46:04
ContentProvider:
当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。
共享数据:其实就是在类里面定义了uri的地址,然后其它应用通过uri来连接这个类,从而实现了数据的共享。
先建立表格:
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQwOS83YzRhZWZkN2Q2OGI4YjBkY2U1YTQ2N2ZiZTlmOTZiOS5KUEVH)
继承了ContentProvider的类:(实现增删改查)
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQwMS80ZjJiOTdiNTZjYThhMmQyNTk0YWZjZjQzYzZkMjI2MS5KUEVH)
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQwMC83Nzk4ODQzMjZmNTRkY2YwZmVkNmU3MDNjYTFjODZiMC5KUEVH)
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzg3MC9lNmY3YjUwYzNlNDk4MWViYTE5NzEyYTJhMTRhNjRhZS5KUEVH)
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzgyLzNkNzVhYjBhZDhjZGYwOTExYTkyOTg4ODQ4Nzk2MzBhLkpQRUc=)
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzMxMC80Y2ZkNzQwNDU4YjhmN2Q3YzA0NTBjZDVlYmQzOTUyZS5KUEVH)
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzI2MS9lYzgwYjEzOTRjMmQwNTEzNjkwNTUwYWZmMWM5NWY4ZC5KUEVH)
到此,就写完了,关于操作数据库的增删改查的操作,然而,在清单里面还要进行设置
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzg5MC8xOTA5NWU4MTdiMWMyMWNkNTcwMzhmM2JmNWNlYzk1YS5KUEVH)
在AndroidManifest.xml中对application进行操作:
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ2OS80ZWZmMTA5NzI1NDAzMDlmOGM1ZTdkZDUyZjMwMmRlNS5KUEVH)
然后在ApplicationNodes这一栏中添加:
添加以后,在它的右侧中,
要添加Name和Authorities:
Name中添加你上面写的类的名字
Authorities中添加你在这个类里定义的uri路径,就是包名+类名
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ4Mi8xOWNmOTJhMDFjNDJkOTUyOGNhMGFjZGExMDkyYWE5YS5KUEVH)
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzcyNC84OTVkN2FiN2M3YTVkY2ZiZjM5YzE5YWY2MTg4MmRhYy5KUEVH)
然后进行保存就可以了。
因为我们这个程序写的是关于ContentProvider的。根据我们了解的特性,它是根据uri来判断并进行操作的,所以,为了能够更好的体现这一点,又重新建了一个android项目来存放test测试类:
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkvN2Y2YWUwZDQ5YzEzNTQyNzliODAyYzI1NGYxNmE1MzkuSlBFRw==)
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzczNy81ZDhjNWVmNWI2ZjNiODBlZjE1ZTU3NWM4Nzk2YTJmMS5KUEVH)
在这里又必须对清单进行设置了。
AndroidManifest.xml:添加UsesLibrary
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzg1NS9hODYwZTg3YWRlNjllYTNiYjUyZDRmMmQyNWM0ZGM3Ny5KUEVH)
添加以后再在它的右侧设置
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU0OC83ZWY5YzE0MWMwYWVkN2U1NTM3YWY4NDEwYjdiMTRlNC5KUEVH)
下面再设置Instrumentation:
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzc4MC9iMTFlNDc1MDQ1OWFlN2MzN2JiN2FiYjMyOWU5N2VkNC5KUEVH)
点击add添加
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYxOS81ZDMwZjYxZDlhMThlZjBjNjgzYzE4MDQxNDQ0NWQ1Yi5KUEVH)
添加后,选中添加的东西,会在它的右侧出现它的详细信息,然后进行设置Name和package:
![Android成长之路-重要组件之ContentProvider Android成长之路-重要组件之ContentProvider](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU0MS84NjY5NDA1MDY5ZTkwNjQ1ZGE3MDA4YWM5NTQzMTNjZC5KUEVH)
至此,所有的就都搞定了!
运行项目:
在运行test测试类之前要先把写出数据库增删改查的项目运行起来,然后在运行test测试就OK了,否则就会出错。