Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android Service生命周期及用法

Android Service生命周期及用法

編輯:Android開發教程

上一節我講解了Android Activity的生命周期,這一節我將講解一下Service,首先我們要知道Service具體是干什麼的,什麼時候用到?以及它的生命周期等。

Service概念及用途:

Android中的服務,它與Activity不同,它是不能與用戶交互的,不能自己啟動的,運行在後台的程序,如果我們退出應用時,Service進程並沒有結束,它仍然在後台運行,那我們什麼時候會用到Service呢?比如我們播放音樂的時候,有可能想邊聽音樂邊干些其他事情,當我們退出播放音樂的應用,如果不用Service,我們就聽不到歌了,所以這時候就得用到Service了,又比如當我們一個應用的數據是通過網絡獲取的,不同時間(一段時間)的數據是不同的這時候我們可以用Service在後台定時更新,而不用每打開應用的時候在去獲取。

Service生命周期 :

Android Service的生命周期並不像Activity那麼復雜,它只繼承了onCreate(),onStart(),onDestroy()三個方法,當我們第一次啟動Service時,先後調用了onCreate(),onStart()這兩個方法,當停止Service時,則執行onDestroy()方法,這裡需要注意的是,如果Service已經啟動了,當我們再次啟動Service時,不會在執行onCreate()方法,而是直接執行onStart()方法,具體的可以看下面的實例。

Service與Activity通信:

Service後端的數據最終還是要呈現在前端Activity之上的,因為啟動Service時,系統會重新開啟一個新的進程,這就涉及到不同進程間通信的問題了(AIDL)這一節我不作過多描述,當我們想獲取啟動的Service實例時,我們可以用到bindService和onBindService方法,它們分別執行了Service中IBinder()和onUnbind()方法。

為了讓大家 更容易理解,我寫了一個簡單的Demo,大家可以模仿著我,一步一步的來。

第一步:新建一個Android工程,我這裡命名為ServiceDemo.

第二步:修改main.xml代碼,我這裡增加了四個按鈕,代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
 <TextView
  android:id="@+id/text"  
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello"
     />
 <Button
  android:id="@+id/startservice"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="startService"
 />
 <Button
  android:id="@+id/stopservice"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="stopService"
 />
 <Button
  android:id="@+id/bindservice"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="bindService"
 />
 <Button
  android:id="@+id/unbindservice"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="unbindService"
 />
</LinearLayout>

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved