第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android中怎么啟動關(guān)閉Service及功能解釋

Android中怎么啟動關(guān)閉Service及功能解釋

猛跑小豬 2019-03-12 09:08:10
Android中怎么啟動關(guān)閉Service及功能解釋
查看完整描述

3 回答

?
慕尼黑5688855

TA貢獻1848條經(jīng)驗 獲得超2個贊

 啟動:
  //首先注冊服務
  <service
  android:name="com.wangdeyu.service.MusicService"
  android:exported="false" >
  <intent-filter>
  <action android:name="com.abc" />
  </intent-filter>
  </service>
  
  //啟動服務
  Intent service=new Intent(" com.abc");
  startService(service);
  //Service生命周期
 ?、賝nCreate() 創(chuàng)建Service
 ?、趏nStart(Intent intent, int startId) 啟動Service
 ?、踥nDestroy() 銷毀Service
  //關(guān)閉服務
  stopService(service);
  
  Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDestroy
  我們有兩種方式啟動一個Service,他們對Service生命周期的影響是不一樣的。
  1 通過startService,就是上面這種
  Service會經(jīng)歷 onCreate --> onStart
  stopService的時候直接onDestroy
  如果是 調(diào)用者 直接退出而沒有調(diào)用stopService的話,Service會一直在后臺運行。
  下次調(diào)用者再起來仍然可以stopService。
  2 通過bindService
  Service只會運行onCreate, 這個時候 調(diào)用者和Service綁定在一起
  調(diào)用者退出了,Srevice就會調(diào)用onUnbind-->onDestroyed
  所謂綁定在一起就共存亡了。
  注意:Service的onCreate的方法只會被調(diào)用一次,
  就是你無論多少次的startService又 bindService,Service只被創(chuàng)建一次。
  如果先是bind了,那么start的時候就直接運行Service的onStart方法,
  如果先是start,那么bind的時候就直接運行onBind方法。如果你先bind上了,就stop不掉了,
  只能先UnbindService, 再StopService,所以是先start還是先bind行為是有區(qū)別的。
  Android中的服務和windows中的服務是類似的東西,服務一般沒有用戶操作界面,它運行于系統(tǒng)中不容易被用戶發(fā)覺,可以使用它開發(fā)如監(jiān)控之類的程序。
  服務不能自己運行,需要通過調(diào)用Context.startService()或Context.bindService()方法啟動服務。
  這兩個方法都可以啟動Service,但是它們的使用場合有所不同。使用startService()方法啟用服務,調(diào)用者與服務之間沒有關(guān)連,
  即使調(diào)用者退出了,服務仍然運行。使用bindService()方法啟用服務,調(diào)用者與服務綁定在了一起,調(diào)用者一旦退出,服務也就終止,大有“不求同時生,必須同時死”的特點。
  如果打算采用Context.startService()方法啟動服務,在服務未被創(chuàng)建時,系統(tǒng)會先調(diào)用服務的onCreate()方法,
  接著調(diào)用onStart()方法。如果調(diào)用startService()方法前服務已經(jīng)被創(chuàng)建,多次調(diào)用startService()方法并不會導致多次創(chuàng)建服務,
  但會導致多次調(diào)用onStart()方法。采用startService()方法啟動的服務,只能調(diào)用Context.stopService()方法結(jié)束服務,服務結(jié)束時會調(diào)用onDestroy()方法。
  如果打算采用Context.bindService()方法啟動服務,在服務未被創(chuàng)建時,系統(tǒng)會先調(diào)用服務的onCreate()方法,
  接著調(diào)用onBind()方法。這個時候調(diào)用者和服務綁定在一起,調(diào)用者退出了,系統(tǒng)就會先調(diào)用服務的onUnbind()方法,
  接著調(diào)用onDestroy()方法。如果調(diào)用bindService()方法前服務已經(jīng)被綁定,
  多次調(diào)用bindService()方法并不會導致多次創(chuàng)建服務及綁定(也就是說onCreate()和onBind()方法并不會被多次調(diào)用)。
  如果調(diào)用者希望與正在綁定的服務解除綁定,可以調(diào)用unbindService()方法,調(diào)用該方法也會導致系統(tǒng)調(diào)用服務的onUnbind()-->onDestroy()方法.


 


查看完整回答
反對 回復 2019-03-22
?
米琪卡哇伊

TA貢獻1998條經(jīng)驗 獲得超6個贊

Service服務,是安卓中的四大組件之一
簡單的說,服務可以再后臺運行,及時程序退出,也是可以運行的
定義一個類,繼承Service
復寫oncreate(服務第一次啟動就會調(diào)用),onstartCommand(每次調(diào)用startService都會調(diào)用)
啟動 startService
關(guān)閉 stopService

查看完整回答
反對 回復 2019-03-22
  • 3 回答
  • 0 關(guān)注
  • 1185 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號