读书频道 > 网站 > 网页设计 > 黑客攻防从入门到精通(智能终端版)
3.4.2 服务
15-09-21    下载编辑
收藏    我要投稿   
本书紧紧围绕移动黑客攻防展开,在剖析移动设备可能遇到的风险及解决办法的同时,力求对其进行简单明了的讲解,使读者系统地了解移动设备的防御体系,并能够更好地防范黑客的攻击。全书共分为13章,包括初识黑客立即去当当网订购
服务没有可视化的用户界面,而是在一段时间内在后台运行的。比如,一个服务可以在用户做其他事情的时候在后台播放背景音乐、从网络上获取一些数据或者计算一些东西并提供给需要这个运算结果的Activity使用。每个服务都来自Service基类。
 
一个媒体播放器播放列表中的曲目是一个不错的例子。播放器应用程序可能有一个或多个Activity来给用户选择歌曲并进行播放。然而,音乐播放这个任务本身不应该被任何Activity所处理,因为用户期望在他们离开播放器应用程序而开始做别的事情时,音乐仍在继续播放。为达到这个目的,媒体播放器Activity应该启用一个运行于后台的服务。而系统将在这个Activity不再显示于屏幕之后,仍维持音乐播放服务的运行。
 
你可以连接至一个正在运行的服务。连接之后,你可以通过那个服务暴露出来的接口与服务进行通信。对于音乐服务来说,这个接口可以允许用户暂停、回退、停止以及重新开始播放。
 
如同Activity和其他组件一样,服务运行于应用程序进程的主线程内。所以,它不会对其他组件或用户界面有任何干扰,它们一般会派生一个新线程来进行一些耗时任务(比如音乐回放)。
 
开启Service有两种方式,具体如下。
 
1.Context.startService()
 
Service会经历onCreate ->onStart(如果Service还没有运行,则Android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart()方法可能会重复调用多次);StopService的时候直接调用onDestroy(),如果是调用者自己直接退出而没有调用StopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService()关闭Service。
 
【注意】
 
多次调用Context.startservice()不会发生嵌套(即使会有相应的onStart()方法被调用),所以无论同一个服务被启动了多少次,一旦调用Context.stopService()或者StopSelf(),它都会被停止。补充说明:传递给StartService(0的Intent对象会传递给onStart()方法。调用顺序为:onCreate -->onStart(可多次调用) -->onDestroy。
 
2.Context.bindService()
 
Service会经历onCreate() -->onBind(),onBind()将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Srevice就会调用onUnbind -->onDestroyed相应退出,所谓绑定在一起,就是共存亡。
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站