Android開發入門 初識Service

2021-06-28 23:41:51 字數 3993 閱讀 6195

個人站點:sundroid.cn

[email protected]微博:

service和activity一樣也具有生命週期,其分別為oncreate()、onstart()和ondestory()。

從上圖可見,service的整個生命週期其實與oncreate()、終止於ondestory()。實現service需要繼承service,其啟動方法有兩種,startservice()和bindservice(),相對應的結束方式分別為stopservie()和unbindservice()。

startservice()和bindservice()兩個方法都可以啟動service,但是兩者的應用場合有所不同,使用startservice()方法啟動服務,呼叫者與服務之間沒有關聯,即使呼叫者退出了,服務仍然執行,使用bindservice()方法啟動服務,呼叫者與服務繫結在一起,呼叫者一旦退出,服務也就終止了。

倒計時方法一實現

mainactivity

import android.content.intent;

import android.os.bundle;

import android.view.view;

import android.widget.button;

public class mainactivity extends activity

});}

@override

protected void ondestroy()

}countservice

import android.content.intent;

import android.os.ibinder;

import android.util.log;

/** * created by sundroid on 2015/3/6.

*/public class countservice extends service

@override

public void oncreate() catch (interruptedexception e)

log.i("time","time remain "+seconds);

seconds--;

}log.i("service","time up");

}}).start();

}@override

public void ondestroy()

}倒計時方法二實現

mainactivity

import android.content.componentname;

import android.content.context;

import android.content.intent;

import android.content.serviceconnection;

import android.os.bundle;

import android.os.ibinder;

public class mainactivity extends activity

@override

protected void ondestroy()

private serviceconnection conn = new serviceconnection()

@override

public void onservicedisconnected(componentname name)

};}

countservice

import android.content.intent;

import android.os.binder;

import android.os.ibinder;

import android.util.log;

/** * created by sundroid on 2015/3/6.

*/public class countservice extends service

@override

public void oncreate() catch (interruptedexception e)

log.i("time","time remain "+seconds);

seconds--;

}log.i("service","time up");

}}).start();

}@override

public void ondestroy()

class servicebinder extends binder

}} manifest配置

<?xml version="1.0" encoding="utf-8"?>

binder 的通訊機制

執行結果

03-06 11:33:51.118    2359-2383/cn.sundroid.androidreview i/time﹕ time remain 13

03-06 11:33:52.119 2359-2383/cn.sundroid.androidreview i/time﹕ time remain 12

03-06 11:33:53.121 2359-2383/cn.sundroid.androidreview i/time﹕ time remain 11

03-06 11:33:54.122 2359-2383/cn.sundroid.androidreview i/time﹕ time remain 10

03-06 11:33:55.123 2359-2383/cn.sundroid.androidreview i/time﹕ time remain 9

03-06 11:33:56.124 2359-2383/cn.sundroid.androidreview i/time﹕ time remain 8

03-06 11:33:57.126 2359-2383/cn.sundroid.androidreview i/time﹕ time remain 7

03-06 11:33:58.128 2359-2383/cn.sundroid.androidreview i/time﹕ time remain 6

03-06 11:33:59.129 2359-2383/cn.sundroid.androidreview i/time﹕ time remain 5

03-06 11:34:00.130 2359-2383/cn.sundroid.androidreview i/time﹕ time remain 4

03-06 11:34:01.131 2359-2383/cn.sundroid.androidreview i/time﹕ time remain 3

03-06 11:34:02.132 2359-2383/cn.sundroid.androidreview i/time﹕ time remain 2

03-06 11:34:03.133 2359-2383/cn.sundroid.androidreview i/time﹕ time remain 1

03-06 11:34:03.134 2359-2383/cn.sundroid.androidreview i/service﹕ time up

Android開發入門 Socket程式設計

1 socket通訊模型如下 應用程式通過套接字可以進行通訊,可以使用udp協議或者使用tcp協議,當客戶端和伺服器端的協議時相對應的,客戶端使用tcp,那麼伺服器端使用tcp 2 udp協議 把資料打包成資料報,然後直接傳送對應的ip位址,速度快,但是不保證 成功率,並且資料大小有限 tcp協議 ...

Android開發入門 Socket程式設計

基於2410 lcd 驅動 makefile 編寫 1 socket通訊模型如下 應用程式通過套接字可以進行通訊,可以使用udp協議或者使用tcp協議,當客戶端和伺服器端的協議時相對應的,客戶端使用tcp,那麼伺服器端使用tcp 3 tcp通訊方式如下 而udp通訊不使用inputstream和ou...

android入門開發例項

android控制項學習之十五 gridview例項 android控制項學習之十四 imageswitcher例項 android控制項學習之十三 gallery拖動效果 android控制項學習之十二 imagebutton與button android控制項學習之十一 imageview瀏覽器...