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中的service,service一般没有效户操纵界面,它运行于体系中不轻易被用户发觉,
可以应用它开辟如监控之类的法度。
一。步调
第一步:持续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);//解除绑定