今天学习了一下Service,它也是Android四大组件之一,一种可以在后台长时间运行,而且不提供任何用户接口的应用组件。
首先,体验了service的两种形式——启动形式、绑定形式。
这里先说启动形式。
1 创建service——通过继承系统service类
第二种创建方法是——继承拓展类IntentService
两种方法的区别在后面根据结果分析。
2 然后在AndroidManifest.xml中申明Service——
3 在布局文件中添加3个按钮,如图所示——
4 运行结果分析——
a.单击一次“启动IntentService”,出现——
b.连续单击三次“启动IntentService”,出现——
这说明IntentService的“排队机制”,先调用三次onHandleIntent方法,再销毁。
c.连续单击两次“启动IntentService”,再马上点击“停止IntentService”,出现——
执行了一次onHandleIntent方法后就执行停止命令。
d.单击“Service”按钮,出现“休息10s”语句,并且界面上的按钮一直出于“点中”状态,整个界面不能再点,处于“假死”状态。等10s后,就恢复了。
ps:
这里结果是看后台日志的,手机上只做点击,没有输出信息,所以在AS中看输出信息。
一开始,程序都是对的,但是在Android Monitor里啥都没有。
百度了一下,说用手机运行的程序要开AndroidDeviceMonitor的DDMS看,但是我打开还是没有,只有一堆乱七八糟的信息不停地在更新。
那篇博文下面有人回复说,再把DDMS关了就能看到。
果不其然,关了DDMS后就能在Android Monitor里看到输出信息了。
这就是Service启动形式的小实例,下一篇写一点绑定形式的Service.