Service服务应用
1.1 实验目的
掌握Android 掌握Service服务的应用
1.2 实验步骤
1.创建一个Android应用,创建MainActivity。
2.使用Service服务创建一个电话监听器
3.完善开机播放电话播放器
4.完成一个办证的小案例。
1.3 实验代码
1、创建工程
2、创建一个PhoneService 继承Service 并重写onCreate,并定义一个类来监听电话的状态:
3、在AndroidManifest.xml清单文件配置Service,并添加权限
4、在activity_main添加一个Button来点击出发Service
5、在MainActivity活动页面添加按钮点击事件监听,并开启Service
6、部署过去看下能不能监听电话的状态
7、使用广播接收者设置开机启动程序,定义一个广播接收者
8.在AndroidManifest.xml进行配置
9、将activity的意图过滤注释掉,不需要界面
10、重新部署,并重新开机看下效果
1.4 实验总结
1.Service
服务( service )是Android系统中的重要组件,服务可以在不显示界面的情况下在后台运行制定的任务或者进行两个不同进程间的通讯,android在后台运行着许多服务,这些服务在系统启动时被开启,支持系统的正常工作。例如∶来电显示服务,在编程是通过调用系统服务可以便捷地实现系统功能,提高编程的效率。
getSystemService(String name )是activity的一个重要方法,根据传入的服务名称来获得系统级的服务。系统服务可以被看成一个对象,getSystemService方法返回的是一个Object对象类型,在实际使用中需要进行强制类型转化。参数name表示系统服务的ID,其中android.content.Context类中定义了常用的Android系统服务。
如果系统资源变得紧张,Android Activity可以被启动、停止、销毁甚至可能被重新创建。而Service被设计成拥有更长的生命周期。Service在Android中可以从Activity、广播接收器(Broadcast receiver)或者由其他Service中启动。
必须注意到的是,使用Service不会自动创建新的线程。所以,如果我们要在Service中实现一个简单的逻辑并且那不需要长时间处理,我们不必在一个单独的线程中运行它。但是,如果需要去实现一个复杂的逻辑并且会耗费长时间的处理,我们在创建新线程时必须小心,要不然由于Service运行在主线程可能引起ANR问题(应用程序无响应)。