所有文档及实例均为老师编写归纳,版权均归我的Android老师所有,如有侵权即删
一、provider
ContentProvider:
数据共享(数据提供者)
1. ContentProvider如何实现数据共享
2. 如何操作ContentProvider
二、service
Service:
启动方式:
1. 如何启动Service:创建一个intent对象,指定启动的service(显式,隐式),隐式启动只需要指定action。
2. 2种启动方式:startService,bindService
3. 如何创建service:参考activity,先创建service继承类,然后在清单文件中声明
StartService:
1. 启动时创建一次,只要不手动回收service,该service和应用进程同时存在
2. 调用的是onStartCommand,每次调用会自动生成一个新的startId。
3. 通过StartService启动的service,无法获取service对象,无法直接交互
Ps:startService负责告诉系统我可以独立运行
BindService:
1.启动时创建一次,和启动service的对象绑定,对象结束,service也结束
2.调用的是onBind方法,回传一个实现IBinder接口的对象,此对象传回ServiceConnection的回调方法。
3.通过BindService启动的对象,在启动类和service类之间创建了一个IBinder接口的对象,它是类似于一个管道的对象,可以通过这个管道和service进行直接交互。
Ps:bindService负责和指定的service建立IBinder连接管道
三、widget
如何为应用添加一个小组件
1. 创建一个class继承自AppWidgetProvider。(AppWidgetProvider实际上就是一个receiver)
2. 在清单文件中,注册这个widget,用receiver注册
3. 在清单文件中为这个receiver添加intent-filter属性,必须声明一个action,action必须是” android.appwidget.action.APPWIDGET_UPDATE”
4. 在清单文件中为这个receiver添加meta-data属性,在其中声明2个属性,android:name=” android.appwidget.provider”, android:resource="widget说明文件"
5. widget说明文件:用了描述widget。在res目录下新建xml文件夹
6. 在新建的xml文件中声明widget属性
android:minWidth="294dip"最小宽度
android:minHeight="72dip"最小高度
android:updatePeriodMillis="0"更新周期
android:initialLayout="@layout/album_appwidget"小组件布局
7. 创建小组件布局文件(album_appwidget)
8. 在最初创建的class java文件中,添加小组件的更新和用户操作的实现
