ContentProvider简介
ContentProvider是不同应用程序之间进行数据交换的标准API,当一个应用程序需要把自己的数据暴露给其他程序使用时,该应用程序便可通过提供ContentProvider来实现,其他应用程序就可通过ContentResolver来操作ContentProvider暴露的数据。如果某一应用程序通过ContentProvider暴露了自己的数据操作接口,则不管该应用程序是否启动,其他应用程序都可以通过该接口来操作该应用程序的内部数据,包括增加、删除、修改、查询数据。
android:authorities属性
定义好的ContentProvider类必须在AndroidManifest.xml里声明后才能使用,声明中必须添加授权属性
android:authorities,相当于为该ContentProvider指定域名,Content uri中content://authority/optionalPath/optionalId的authority部分便是android:authorities属性指定的值。属性值定义的方法为包名+ “.”+ 该ContentProvider的名称。
Service本身存在的两个问题
1. Service不会专门启动一条单独的进程,Service与它所在应用处于同一个进程中。
2. Service不是一条新的线程,因此不应该在Service中直接处理耗时的操作,耗时的操作应该开启一个新的线程来处理。
处理耗时任务的问题
如果就开发这需要在Service模块中处理耗时任务,一般是在Service中另外启动一条新线程来处理,但不能在其他应用程序组件中启动子线程来处理