1. 程式人生 > >Service的兩種啟動方式及其之間的區別

Service的兩種啟動方式及其之間的區別

作為Android四大組價之一的Service,可以在很多場合中進行應用。比如當在播放音訊的時候使用者啟動了其他Activity,這個時候程式要在後臺繼續播放,比如檢測SD卡上檔案的變化,或者在後臺記錄使用者地理位置資訊的變化等等。開啟Service主要有兩種方式。

(1)startService();此種開啟方式Service會經歷onCreate()--onStart()。若Service還沒執行,則先呼叫onCreate(),然後呼叫onStart();如果Service已經啟動,則只會呼叫onStart()。一個Service的onStart()方法可以被呼叫多次。stopService的時候直接onDestroy,如果是呼叫者自己直接退出而沒有呼叫stopService的話,Service會一直在後臺執行。

注:多次呼叫startService()方法並不會巢狀,所以無論同一個服務被啟動了多少次,一旦呼叫stopService()或者sopSelf(),他都會立刻停止。

(2)bindService():此種啟動方式Service會經歷onCreate()--onBind(),onBind將會返回給客戶端一個IBind介面例項,IBind允許客戶端回撥服務的方法,比如得到Service的執行狀態等。這個時候呼叫者會和Service繫結在一起,呼叫者退出的時候,Service就會呼叫onUnbind--onDestroy退出。

相關推薦

Service啟動方式及其之間區別

作為Android四大組價之一的Service,可以在很多場合中進行應用。比如當在播放音訊的時候使用者啟動了其他Activity,這個時候程式要在後臺繼續播放,比如檢測SD卡上檔案的變化,或者在後臺記錄使用者地理位置資訊的變化等等。開啟Service主要有兩種方式。 (1)

Service啟動方式區別

一、Service第一種啟動方式startService 生命週期:oncreate——>onstartCommand——>onDestroy;多次通過該方法啟動Service,oncreate函式只會被呼叫一次,onStartCommand函式會被多次呼叫,但

Android Service 啟動方式區別

最近在debug android service destory的bug,網上找了service相關的知識,startservice和bindservice都可以啟動service,知道這兩種方式的區別還是很有作用的。 Android Service 生命週期可以促使移動裝置的創新,讓使用者體驗到最優越的

Android Service 啟動方式

1.Context.startService()方式啟動  ①Context.startService()方式的生命週期: 啟動時,startService –> onCreate() –> onStart()停止時,stopService –> on

Service啟動方式的生命週期

注:Service的生命週期中onStart()方法被淘汰,用onStartCommand()代替。 onCreate():在服務被建立時執行,一個服務類只能呼叫一次。 onStartCommand(

Service啟動方式onstartService和onbindService區別

我們都知道,Service啟動有兩種方法,一種是onbindService(繫結),一種是onstartService(啟動),那這兩者究竟有什麼不同呢? 閒話:今天是我第一次寫部落格,第一次就這樣獻給csdn了,我不是大神,只是一個剛工作的實習生,寫部落格只

Service啟動方式區別

第一種啟動方式:startService(Intent)啟動服務 生命週期方法流程:onCreate --- > onStartCommand 關閉服務:stopService(Intent)關閉

Service啟動方式,以及在音樂播放中的使用

 首先,簡要介紹一下service    service就是android系統中的服務,它有這麼幾個特點:它無法與使用者直接進行互動、它必須由使用者或者其他程式顯式的啟動、它的優先順序比較高, 它比處於前臺的應用優先順序低,但是比後臺的其他應用優先順序高,這就決定了當系統因

(一)Service的生命週期和啟動方式

二、生命週期和啟動模式 2.1生命週期 由於生命週期並不多,而且跟activity的類似,這裡和啟動模式一起說 (1)onCreate,onDestroy與activity的概念一樣,不贅述了 (2)onStartCommand,呼叫startService會回撥這個生命週期,如果start同一個ser

Android開發中的Service啟動方式的坑

和大家熟悉的Activity元件一樣,service也是Android應用開程式發中常用的元件,它和acitivy一樣也有自己的生命週期,不同的是service是執行在後臺的,沒有同用戶直接互動的介面。  service的是有兩種啟動方式: 第一種是通過startserv

Android Service啟動方式

Android中有一個經常使用到的元件,叫Service,它有這麼幾個特點: 它無法與使用者直接進行互動; 它必須由使用者或者其他程式顯式的啟動; 它的優先順序比較高,它比處於前臺的應用優先順序低,但是比後臺的其他應用優先順序高,這就決定了當系統因為缺少記

QProcess中的start和startDetached啟動方式區別

一、啟動外部程式的兩種方式: (1)一體式:void QProcess::start(const QString & program, const QStringList & argu

tomcat啟動方式@Xan

tomcat的兩種啟動方式,第一種,直接點選bin/startup.bat啟動,第二種註冊成服務啟動 1、通過startup.bat啟動 指定jdk:在tomcat/bin/setclasspath.bat 裡面新增(為什麼要在setclasspath.bat裡面新增,因為通過sta

solr啟動方式

 solr下載    把下載後的zip包解壓        方式一   solr自啟動     1 開啟cmd.exe,進入到solr的bin目錄下              2 輸入solr.cmd start                  

Spring Boot Application 啟動方式分析

Spring Boot Application 兩種啟動方式分析 問題: Spring boot一般我們都會有 public static void main(String[] args) { SpringApplication.run(xxx.class, args);

SpringBoot學習(三),啟動方式-以main方法啟動和在tomcat裡啟動

        sprigboot既可以直接通過main方法啟動,也可以在tomcat裡啟動,在main方法裡啟動很簡單,直接run啟動類的main方法就可以了。         在tomcat裡啟動

WIN8 與WIN7的64位及32位 分別對Legacy BIOS+MBR和UEFI+GPT啟動方式和分割槽架構下的安裝可行性分析

微軟系統、相關產品官方映象下載:http://msdn.itellyou.cn/關於MBR、GPT、ESP、MSR、EFI、UEFI和WIN8中SECURE BOOT的基礎知識:1.MBR分割槽表:Master Boot Record,即硬碟主引導記錄分割槽表,只支援容量在 2.1TB 以下的硬碟,超過2

Android基礎(四)——Activity的啟動方式、Intent初探

一、啟動Activity 一個activity跳轉到另外一個activity中的最簡單的方式就是使用下面的Activity方法: public void startActivity(Intent in

Jfinal框架啟動方式

在這裡給大家講一下JFinal專案的兩種啟動方式: 1.使用JFinal框架整合的jetty server啟動專案,JFinal提供了啟動方法,示例: public static void main(String[] args){JFinal.start("WebRoot"

java執行緒的啟動方式

/** * 實現Runnable介面 * @author dell */public class TicketRunnable implements Runnable{//實現run方法@Overridepublic void run() {for(int i=0; i<10; i++){System.