1. 程式人生 > >(一)Service的生命週期和兩種啟動方式

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

二、生命週期和啟動模式

2.1生命週期

由於生命週期並不多,而且跟activity的類似,這裡和啟動模式一起說
(1)onCreate,onDestroy與activity的概念一樣,不贅述了 (2)onStartCommand,呼叫startService會回撥這個生命週期,如果start同一個service多次,onCreate方法只會呼叫一次,而onStatrCommand會執行多次,只要呼叫了一次onDestroy,service的生命週期就結束了 (3)onBind,呼叫onBind方法時,會回撥該方法,同樣的,如果bind同一個service多次,onCreate方法也是隻呼叫一次,而onBind方法會呼叫多次,只要呼叫了一次onUnBind,就會讓繫結者與service解綁,當service上一個繫結者都沒有的時候,自己就會destroy。 介紹生命週期的同時,其實就把兩種呼叫方式已經順便說了。

2.2呼叫方式

(1)start:比如從activity中start了一個service,那麼activity與service是沒什麼關係的,即使activity退出了,service仍然可以執行,直到使用者結束或者service自己destroy。 (2)bind:如果從activity中bind了一個service,那麼activity與service就建立了一種關係,如果activity退出了,並且這個service沒有其他的bindClient了,那麼這時候,service就會自己結束。 比如音樂播放這種需求,當用戶點選home退出了activity,我們仍然希望可以播放音樂,並且讓我們可以控制暫停,下一首等操作,如何實現呢?請看下一篇  
混合呼叫與AIDL使用

相關推薦

Service生命週期啟動方式

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

android介面設計筆記底部導航欄的實現方式

demo:https://github.com/linliangliang/BottomNavagationBar android底部導航欄的實現方式比較多,今天學習其中兩種方式: 一、使用tabLayout+Fragment實現。 二、使用BottomNavigationBar實現。

android介面設計側邊欄的實現方式

dome:https://github.com/linliangliang/sidebar 一、使用slideingMenu結合fragment實現。 二、使用Navigation和DrawerLayout實現。 第二種實現方式:https://mp.csdn.net/postedit/

maven系列-maven生命週期外掛

前面講了maven的依賴和倉庫,這是經常接觸到的一些操作。但是我們平時還會接觸到maven生命週期的一些操作,比如打包、編譯等,maven就可以把我們的專案進行打包、編譯。其實這個過程,還是涉及到很多知識點的,只不過我們在操作過程中察覺不到而已。 我們在專案開發中都會涉及到清理、編譯、測

RxJava2完整生命週期

RxJava2 完整生命週期 簡介: 1.RxJava用於通過使用被觀察者Obverserable/Flowable序列來構建非同步和基於事件的庫。 2.RxJava支援Java5之後版本,還支援跑在JVM上的各種語言。 3.RxJava可以用在Android開發的任何地方,包括App所

Servlet學習筆記--Servlet生命週期

    用例項來觀察servlet方法的呼叫順序,建立一個類實現servlet介面: package com.servlet.HelloServlet; import java.io.IOException; import javax.servlet.Servlet;

Activity生命週期

(一)Activity之生命週期一、概念Activity是Android四大元件之一,其主要功能是與使用者互動,向用戶顯示內容,接收使用者輸入(點選,滑動),可以說Activity是四大元件中最重要的元件(當然了,其他3個元件也很重要)。那麼掌握activity的生命週期就顯

Spring 詳解------- AOP關鍵概念以及實現方式

目錄 1. AOP 關鍵詞 2. AOP 的作用 3. AOP 的通知型別 4. 基於 xml 的配置方式 5. 基於註解的配置方式 6. 切面的優先順序 7. 重用切點表示式 8. 兩種方式的比較(摘自 spring 官方文件) 1. AOP 關鍵詞

android介面設計筆記底部導航欄的實現方式

demo:https://github.com/linliangliang/BottomNavagationBar android底部導航欄的實現方式比較多,今天學習其中兩種方式: 一、使用tabLayout+Fragment實現。 二、使用BottomNavagationBar實現。 第一

android介面設計側邊欄的實現方式

dome:https://github.com/linliangliang/sidebar 一、使用sideingMenu結合fragment實現。 二、使用NavigationView和DrawerLayout實現。 第一種實現方式:https://mp.csdn.net/posted

spring ioc容器結構初始化步驟以及bean生命週期建立方式

建立物件的三種方式:             1、採用預設的建構函式建立        2、採用靜態工廠方法           1、寫一個靜態工廠方法類                public class HelloWorldFactory {    

serviceactivity通訊方式

實現效果圖: 使用service在後臺播放音樂,拖動進度條,與服務進行互動,改變音樂的播放進度 (1)首先,我們需要申請讀取本地檔案的許可權,播放本機的音樂 <uses-permission android:name="android.permission

Android 活動Activity服務Service、程序Process生命週期

在 Android 中,多數情況下每個程式都是在各自獨立的 Linux 程序中執行的。當一個程式或其某些部分被請求時,它的程序就“出生”了;當這個程式沒有必要再執行下去且系統需要回收這個程序的記憶體用於其他程式時,這個 程序就“死亡”了。可以看出,Android 程式的生

安卓活動Activity碎片Fragment生命週期

引言 對於安卓中生命週期的過程以及相應的事件的瞭解是非常重要的。 活動(Activity)的生命週期 Activity 類中定義了七個事件回撥方法,與Activity生命週期的

vue學習 vue生命週期 vue自定義指令過濾器

生命週期鉤子函式 vue的生命週期圖示 vue的幾個鉤子函式 直接程式碼展示: <div id="box"> {{msg}} </div> <script>

KBEngine warring項目源碼閱讀 項目簡介註冊登錄

urn 創建 ges input alt 接下來 F12 .com name 首先介紹下warring項目,是kbe自帶的一個演示示例,大部分人了解kbe引擎也是從warring項目開始的。 項目地址:https://github.com/kbengine/kbengine

vue系列子組件父組件

top parent sage too msg pro 工具 light java 父組件傳遞數據到子組件props 父組件 <template> <div class="main"> <div class="top">

Servlet學習筆記生命周期

磁盤 停止 生命 第一個 每一個 clas 瀏覽器 doget des 一、Servlet 生命周期:   Servlet 生命周期可被定義為從創建直到毀滅的整個過程。以下是 Servlet 遵循的過程:初始化——響應請求——終止——回收 Servlet 通過調用 in

JSP學習筆記:JSP語法指令

沒有 文件的 encoding 引入 2.0 .cn name blog .get 一、語法 1、腳本程序的語法格式:   腳本程序可以包含任意量的Java語句、變量、方法或表達式,只要它們在腳本語言中是有效的。 <% 代碼片段 %> 2、中文編碼問題   

JavaScript 從入門到放棄事件委托使用innerHTML添加元素

ont ntb innerhtml col 添加元素 pan div 基本 開發 一、使用事件委托 一個簡單的需求,比如想給ul下面的li加上點擊事件,點擊哪個li,就顯示那個li的innerHTML。這個貌似很簡單!代碼如下! <!DOCTYPE html>