Android四大組件之 --- Service入門

在前面瞭解了什麼是多線程和異步消息處理機制後,咱們來看一下到底什麼是Service。java

1. 什麼是service(service的做用)
一個服務是一個具備較長生命週期但沒有用戶界面的程序,例如:一個正在從播放列表中播放歌曲的媒體播放器在後臺運行
service用於在後臺完成用戶指定的操做,通常不須要與用戶交互
2. 分類
service分爲兩種:
started(啓動):當應用程序組件(如activity)調用startService方法啓動服務時,服務處於started狀態
bound(綁定):當應用程序組件調用bindService()方法綁定到服務時,服務處於bound狀態
3. 注意,service也是須要在配置文件中(好比AndroidManifest.xml)註冊的,例如
<service
android:name=".MyService"
android:enabled="true"
android:exported="true"></service>
4.定義一個service(如何在項目中定義一個服務)
新建一個ServiceTest項目,而後右擊com.example.servicetest→New→Service→Service,在彈出的建立服務
窗口中,Exported屬性表示是否容許除了當前程序以外的其餘程序訪問該服務,enabled屬性表示是否啓用這個服務。android

MyService.java中的代碼:
public class MyService extends Service {多線程

public MyService() {
}異步

@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("Not yet implemented");
}ide

}線程

MyService繼承自Service類,因此也是一個服務。onBind()方法是Service中惟一一個抽象方法,因此必須在子類
裏實現。
重寫Service中的一些其餘方法
public class MyService extends Service {xml

public MyService() {
}繼承

@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("Not yet implemented");
}
//onCreate(), onStartCommand(),onDestory()是服務中最經常使用的3個方法
//onCreate()會在服務建立時調用
@Override
public void onCreate() {
super.onCreate();
}
//onStartCommand()在每次服務啓動時調用,若是咱們但願服務一旦啓動就執行某個action,就能夠將邏輯寫在
//onStartCommand()方法裏面
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
//onDestory()在服務銷燬時調用,在服務銷燬時,咱們要在onDestory()中回收那些再也不使用的資源
@Override
public void onDestroy() {
super.onDestroy();
}生命週期

}
onCreate()和onStartCommand()的區別:
onCreate()在服務第一次建立時調用
onStartCommand()在每次啓動服務時都會調用資源

相關文章
相關標籤/搜索