频道栏目
首页 > 资讯 > Android > 正文

android四大组件笔记之Service(二)

17-06-16        来源:[db:作者]  
收藏   我要投稿

android四大组件笔记之Service,安卓的开发主要是围绕activity、broadcastReceiver、service、ContentProvider四大组件和基于view的子类组成,其中activity、broadcastReceiver、service都是通过它们的桥梁Intent创建和传递消息。通过Handler来执行消息、线程通讯的操作。而关于IPC,我觉得不得不说的就是binder。咱们这篇的主角是android的四大天王之一Service。

Service

概念:

Service可以说是一个在后台运行的Activity,它不是一个单独的进程,它需要应用告诉它要在干什么就可以了。它要实现和用户交互,需要通过通知栏或者是发送广播,UI去接收显示。它的应用十分广泛,尤其是在框架层。应用更多的是对系统服务的调用。

应用:

它用于处理一些不干扰用户使用的后台操作。如下载、网络获取、播放音乐。同时也可以绑定到宿主对象(如Activity)来使用。
ps:一般情况下,Service都是运行在UI线程的,所以不能执行耗时操作。

分类:

按启动方式:
Context.startService()
调用startService()会执行onCreate,再调用onStartCommand。多次调用startService()不会多次创建,但是会多次调用onStartCommand(),只有调用stopService()才会结束服务。 Context.bindService()
调用bindService()会执行onCreate,再调用onBind。多次调用不会多次创建。它是和调用者绑定到一起的,如果调用者退出了。就会调用unBindService()。当然调用者也可以主动调用unBIndService()。
按服务范围:
本地服务(LocalService):用于程序内部。 远程服务(RemoteService):用于android应用程序之间。
按运行类别:
前台服务
调用 startForeground(int startId,Notification ntf) (android2.0以上 ) 或 setForeground(android2.0以下)使服务成为前台服务。提升进程优先级,避免被杀死。
使用:在onStartCommand里面调用startForeground方面让服务运行在前台,在onDstroy调用stopForeground解除。 后台服务
服务默认运行状态

生命周期

context.startService()
context.startService -> onCreate() -> onStartCommand() -> Service running -> context.stopService() -> onDestroy() -> service stop context.bindService()
context.bindService() -> onCreate -> onBind() -> service running -> onUnbind() -> onDestroy() ->service stop
相关TAG标签
上一篇:解决 eclipse移植androidstudio 找不到静态库的问题
下一篇:GPS坐标转换经纬度及换算方法
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站