2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

Android+物聯網培訓實戰教程之Android下service詳解

更新時間:2017-05-31 來源:黑馬程序員Android+物聯網培訓學院 瀏覽量:

什么是Service服務
Service是android四大組件之一,沒有顯示的頁面,在每一個應用程序戰功扮演這非常重要的角色。主要用于在后臺處理一些耗時的邏輯操作,或者去執行某些需要長期運行的任務,必要的時候我們可以在程序退出的時候,還讓service在后臺繼續的保持運行狀態。
服務的開啟方式
1.     startService();
2.     bindService();
服務的生命周期
·         如果是startService,那么的它的生命周期是:
1.     onCreate()--> onStartCommand() --> onStart() -->onDestroy();
2.     .服務只會被創建一次,多次調用startService,不會多次調用onCreate()方法, 
會執行onStartCommand() --> onStart() --> onDestory()方法;
3.     一旦服務開啟,就于調用者無關,即使Activity銷毀了,服務依然存在進程中;
4.     外界不可以調用服務里面的方法
 
·         如果是bindService,那么它的生命周期是:
1.     onCreate() --> onBindService() --> onUnBindService() --> onDestory();
2.     服務可以被綁定一次,一旦綁定成功,就不可多次綁定,否則就回解綁失敗
3.     bind方式,只可以解綁一次,多次解綁,應用程序會異常退出
4.     不求同生,但求同死,bind的服務和調用者的生命周期一致
5.     外界可以調用服務里面的方法
混合調用服務的生命周期處理
為了保證服務長期在后臺運行,同時又想調用服務里面的方法
startService()開啟服務
bindService()調用服務里面的方法
unBindService()解綁服務
stopService結束服務
開啟服務的缺點
無法使用服務里面的方法
bind服務步驟,以及調用服務里面的方法
1.綁定方式開啟服務
bindService(intentService,ServiceConnection,BIND_AUTO_CREATE);
2.服務內部需要定義一個服務的代理類
MyBinder extends Binder{
    public Service getService(){
        return Service.this;       
    }

3.返回IBinder對象
 public IBinder onBind(Intent intent) {
    return new MyBinder();
}
4.實現ServiceConnection服務里面的方法
  private class MyServieConnection implements ServiceConnection {
 
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
        IService.MyBinder binder = (IService.MyBinder) service;
        mIService = binder.getService();
 
    }
 
    @Override
    public void onServiceDisconnected(ComponentName name) {
 
    }
}
5.調用服務里面的方法
mIService.methed();
綁定服務的常見應用
·         提供一個服務,后臺運行,里面有一些公共的邏輯供調用. 
1.音樂播放器,在服務里面提供上一曲,下一曲,播放,暫停等 
2.qq,微信接收離線消息


本文版權歸黑馬程序員Android培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員Android+物聯網培訓學院
首發:http://Android.itheima.com
分享到:
在線咨詢 我要報名
和我們在線交談!