上次學習了Android四大元件Activity之後,我們深刻了解了Activity。這次我們學習四大元件Service。
Service與Activity的級别是一樣的,都是Android系統必不可少的,也是非常重要的。但是還是有差別的。Activity是與使用者互動的重要元件,是以可以說明Activity是有界面的,存在于前台。而Service确實沒有 界面的,一直存在與背景,默默無聞的奉獻者。
和學習Activity一樣,本節學習如何建立一個Service,以及如何配置Service
第一步建立一個MyService并且繼承Service類,(是不是和我們的activity很相似)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAjM2EzLcd3LcJzLcJzdllmVldWYtl2Pn5GcuQzM3MWMkFjMyUGOjdDM5MTN2MDNlhjM4EzMjFjNxATOvwVO2IDNwEzNtUGall3LcVmdhNXLwRHdo9CXt92YucWbpRWdvx2Yx5yazF2Lc9CX6MHc0RHaiojIsJye.png)
建立後如下圖所示:
建立後的服務也需要到配置檔案中配置,這是不是和Activity也很相似
<service android:name="com.ui.service.MyService"></service>
複制
這樣一個Service算是建立成功了,那如何去啟動一個Service呢? 因為Service是沒有界面的,是運作在背景的。我們可以用列印觀察。啟動service需要借助與Activity
我們建立一個MyActivity
public class MyActivity extends Activity {
private Button btn_start;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_myservice);
btn_start = (Button)findViewById(R.id.button1);
btn_start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(MyActivity.this, MyService.class);
startService(intent);
}
});
}
}
複制
布局檔案就一個Button用來啟動Service
同時我為MyService中添加了幾個方法:
public class MyService extends Service {
@Override//必須實作的方法
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override//被建立時的調用
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
Log.i("MyService", "onCreate------------");
}
@Override
@Deprecated//OnStart方法現在被OnStartCommd已經取代,其實在OnStartCommand也調用了OnStart
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
Log.i("MyService", "onStart------------");
}
@Override//啟動時會調用
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
Log.i("MyService", "onStartCommand------------");
return super.onStartCommand(intent, flags, startId);
}
}
複制
當我點選Button按鈕是,就會啟動Service
ok, 關于Service的建立本節就說道這裡