簡介
今天炒事,我們來學習Service臀栈,首先了解下什么是Service
Service:勤勞的后臺服務者
從字面意思上來看,Service就是服務挠乳,而且是后臺運行的权薯,在Android中很多辛苦的活都是Service干姑躲,但Service卻沒有Activity那么風光,系統(tǒng)頂多給它在下拉通知欄顯示
我們平時用的一些音樂app在回到桌面或者鎖屏后仍能播放音樂盟蚣,這就是服務的作用黍析,下面的我們來創(chuàng)建一個自己的服務。
創(chuàng)建項目
下面我們來試著創(chuàng)建一個Service
可以創(chuàng)建一個類然后繼承Service(記得在AndroidMainfest.xml中注冊)
也可以New > Service > Service(系統(tǒng)會自動幫我們在AndroidMainfest.xml中注冊)
創(chuàng)建完成后就可以看到
MyService.java
public class MyService extends Service {
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
里面有兩個方法屎开,一個是MyService的構造方法阐枣,一個是onBind方法(這個方法后面會詳細分析)
AndroidMainfest.xml
<service
android:name=".MyService"
android:enabled="true"
android:exported="true"/>
這樣,一個Service就創(chuàng)建完成了
回調(diào)方法
創(chuàng)建完成之后的Service還不可以用奄抽,我們還需重寫它的一些回調(diào)方法蔼两,修改Service.java
public class MyService extends Service {
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
這樣,我們的Service就算正式完成了
啟動一個服務
接下來我們試試啟動這個Service
在主界面中放一個Button逞度,并注冊單擊事件
mBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,MyService.class);
startService(intent);
}
});
可以看到啟動Service所構建的Intent和Activity一樣额划,只是啟動所調(diào)用的方法不同
Activity:startActivity(intent)
Service:startService(intent)
其實Activity啟動Service還有一種方式:BindService,這個是讓Activity于Service綁定档泽,這樣Activity就可以從Service中讀寫數(shù)據(jù)俊戳,關于Service更多知識我們后面會慢慢分析。