個人站點:sundroid.cn
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瀏覽器...