Service的应用思路

原创 2016年05月30日 20:17:37

-service 的作用:

                          与activity类似,都代表可执行的程序,service主要用于不需要与用户进行界面交互的场合,因为service没有界面。

service 的好处:

                           为避免Activity中的代码过多,使得代码不便于理解,可以将不需要于用户界面进行交互的代码写在Service中,

          便于自己和别人读取。 

 service启动的两种方式:

                     1.   startService()   方法                    2.bindService()方法

                   1.定义service的子类继承Service,在Service中定义oncreate()方法(在service被创建时回调,从此以后不再执行),定义onStartContent()方法

        (每次启动service时都会调用该方法,多次启动service时都会执行该方法), 在activity中,开启service,在合适的场合调用    startService();

                     service与访问者之间没有关联,即使访问者退出了,Service也仍然运行,所以必须调用stopService() 访问来停止service,防止发生OOM(内存溢出)

           最后销毁 onDestroy() ;

                    适用范围: 访问者与Service之间无法进行数据交换、通信。

                  

                   2.  public boolean bindService(Intent service, ServiceConnection conn, int flags) {
     
                                          return super.bindService(service, conn, flags);
                         }

                       在Activity中定义bindService() 方法(该方法只会执行一次), 其中他们的参数依次为

                                     (1)  service 为需要进行绑定的Service ;  

                                     (2).conn 为ServiceConnection对象,当service与activity连接成功后,会回调该对象的 onServiceConnected(ComponentName name,

                           IBinder service)方法   (其中service为在 Service类 中定义的IBinder对象) , 当发生异常终止后,会回调该对象的

                           onServiceDisconnected(ComponentName  name) 方法。

                       在Service类中,定义onCreate() 方法,定义IBinder  onBind(Intent intent)方法,在绑定Service的情况下,onBind(Intent intent)  方法返回的IBinder对象将会传给

              Activity类中的service参数,  这样访问者就可通过该IBinder对象与Service进行通信了(该IBinder对象为    继承Binder的子类(例 :MyBinder)所创建的对象)。

               然后就可以通过MyBinder 对象来访问Service的运行状态了,然后解除绑定  onUnbind()  ,最后销毁  onDestroy() 。


    service的生命周期:

          1. startService()    onCreate()    onStartCommand()(若多次启动则会一直调用) onStopService()(被访问者调用)   onDestroy() 

                  2.  bindService()    onCreate()    onBind()(与Service绑定)    onUnbind()   onDestroy()


           自己对service的一些见解,能力有限,写的不好,请多多指点。










版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Service绑定的大体思路

  • 2016-03-13 13:46
  • 45KB
  • 下载

?悬赏:Kerberos认证Service_key及Ticket获取相关问题思路求教

?悬赏:Kerberos认证Service_key及Ticket获取相关问题思路求教        思路一:        在Windows客户端与Windows服务器的kerberos认证过程中...

保证service服务不容易被杀死的几种方式思路和高级使用

说道服务不被杀死说白了分两种情况,一种是永远在执行,不执行ondestory,还有一种方法就是在销毁后重新执行oncreae方法,重新启动,相比而言,第一种基本上时候够呛了,现在的清理软件的优先级非常...

j2ee中在service层开启事务的思路

分析: 1.jdbc的conn对象提供了setAutoCommit方法可以关闭自动提交,在Dao层增删改查时可以方便的开事务 2.有些业务需求,如平台充值程序,需要先更新一个资金表表示支付资金,然...

实现音乐播放器后台Service服务一直存在的解决思路

最近实现一个音乐播放器的小项目,实现后台播放歌曲的功能,即使退出程序也可以一直播放歌曲,服务不被停止。 实现这个功能的过程中遇到了有两个问题: 问题1、退出程序之后,service播放歌曲的服务在...

微软项目技术结构思路 ExtJs/JQuery + Asp.net MVC + Wcf service + Entity Framework

正文:  这一阵子在做一个项目, 客户要求使用ExtJs/ vs2008 sql server 2005, 也是好长时间没有去看新的技术和一些框架;  初步设计是准备使用 ExtJs + HTTPHa...

数据结构顺序表应用3:元素位置互换之移位算法然而我的思路跟移位没关系

顺序表应用3:元素位置互换之移位算法 Time Limit: 1000MS Memory Limit: 570KB Problem Description 一个长度为len(1<=len...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)