android service初学

application 全局应用程序类:用于保存和调用全局应用配置及访问网络数据


服务主要用于两个目的:后台运行和跨进程访问。
通过启动一个服务,可以在不显示界面的前提下在后台运行指定的任务,这样可以不影响用户做其他事情。
通过AIDL服务可以实现不同进程之间的通信,这也是服务的重要用途之一。
Service并没有实际界面,而是一直在Android系统的后台运行。一般使用Service为应用程序提供一些服务,或不需要界面的功能,例如,从Internet下载文件、控制Video播放器等。

Service启动到销毁的过程只会经历如下3个阶段:
创建服务
开始服务 startservice可以调用多次
销毁服务
不管是编写什么组件(例如,Activity、Service等),都需要在AndroidManifest.xml文件中进行配置。MyService类也不例子。配置这个服务类很简单,只需要在AndroidManifest.xml文件的<application>标签中添加如下代码即可:
1. <service android:enabled="true" android:name=".MyService" />
其中android:enabled属性的值为true,表示MyService服务处于激活状态。虽然目前MyService是激活的,但系统仍然不会启动MyService,要想启动这个服务。必须显式地调用startService方法。如果想停止服务,需要显式地调用stopService方法,代码如下:
如何启用Service,如何停用Service

Android中的service类似于windows中的serviceservice一般没有效户操纵界面,它运行于体系中不轻易被用户发觉,


可以应用它开辟如监控之类的法度。


一。步调


第一步:持续Service


public class SMSService extends Service { }


第二步:在AndroidManifest.xml文件中的<application>节点里对办事进行设备:


<service android:name=".DemoService" />


二。Context.startService()Context.bindService


办事不克不及本身运行,须要经由过程调用Context.startService()Context.bindService()办法启动办事。这两个办法都可


以启动Service,然则它们的应用处合有所不合。


1.应用startService()办法启用办事,调用者与办事之间没有干系,即使调用者退出了,办事仍然运行。


应用bindService()办法启用办事,调用者与办事绑定在了一路,调用者一旦退出,办事也就终止。


2.采取Context.startService()办法启动办事,在办事未被创建时,体系会先调用办事的onCreate()办法,


接着调用onStart()办法。若是调用startService()办法前办事已经被创建,多次调用startService()办法并


不会导致多次创建办事,但会导致多次调用onStart()办法。


采取startService()办法启动的办事,只能调用Context.stopService()办法停止办事,办事停止时会调用


onDestroy()办法。


3.采取Context.bindService()办法启动办事,在办事未被创建时,体系会先调用办事的onCreate()办法,


接着调用onBind()办法。这个时辰调用者和办事绑定在一路,调用者退出了,体系就会先调用办事的onUnbind()办法,


。接着调用onDestroy()办法。若是调用bindService()办法前办事已经被绑定,多次调用bindService()办法并不会


导致多次创建办事及绑定也就是说onCreate()onBind()办法并不会被多次调用。若是调用者欲望与正在绑定的办事


解除绑定,可以调用unbindService()办法,调用该办法也会导致体系调用办事的onUnbind()-->onDestroy()办法。


三。Service的生命周期


1.Service常用生命周期回调办法如下:



onCreate() 该办法在办事被创建时调用,该办法只会被调用一次,无论调用几许次startService()bindService()办法,


办事也只被创建一次。 onDestroy()该办法在办事被终止时调用。


2. Context.startService()启动Service有关的生命周期办法


onStart() 只有采取Context.startService()办法启动办事时才会回调该办法。该办法在办事开端运行时被调用。


多次调用startService()办法尽管不会多次创建办事,但onStart() 办法会被多次调用。



3. Context.bindService()启动Service有关的生命周期办法


onBind()只有采取Context.bindService()办法启动办事时才会回调该办法。该办法在调用者与办事绑按时被调用,


当调用者与办事已经绑定,多次调用Context.bindService()办法并不会导致该办法被多次调用。


onUnbind()只有采取Context.bindService()办法启动办事时才会回调该办法。该办法在调用者与办事解除绑按时被调用。


备注:


1. 采取startService()启动办事


     Intent intent = new Intent(DemoActivity.this, DemoService.class);


     startService(intent);


2.Context.bindService()启动


    Intent intent = new Intent(DemoActivity.this, DemoService.class);


    bindService(intent, conn, Context.BIND_AUTO_CREATE);


   //unbindService(conn);//解除绑定

你可能感兴趣的:(android service初学)