Xamarin.Andrid 服務

internal class ServiceTest : Service
    {
        // 在真實的使用中,Service來還包含一個OnBind方法,並且必須要使用該方法,但是隻要返回NULL即可,
        //除非當前服務是一個綁定服務,那麼就要返回實現了IBinder的實例。
        public override IBinder OnBind(Intent intent)
        {
            return null;
        }
        //創建服務,只會在服務第一次創建時調用
        public override void OnCreate()
        {
            base.OnCreate();
            Log.Debug("xamarin", "創建服務");
        }

        //每一次啓動服務都會調用該方法
        public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
        {
            Log.Debug("xamarin", "啓動服務");
            return StartCommandResult.Sticky;
        }

        //主要用於釋放資源
        public override void OnDestroy()
        {
            base.OnDestroy();
            Log.Debug("xamarin", "關閉服務");
        }

    }

服務和Android Activity是同級別的,並不是單獨的進程

和上面三以及Content provider並稱爲Android 四大件。服務和Activity一樣,有自己的生命週期,只是沒有界面,其也是運行在主線程裏面的,所以當有耗時的操作時,一定要另開一個線程來完成這個操作。不然就會卡死。

ServiceIntentservice

Service與Intent service的區別就是Intent service裏面可以有耗時的操作,它是另起一個線程

ServicebindingService

 

服務從創建到銷燬,有兩種方式,一爲start service ,其二是bind service,兩者都要

但是呢,其調用的方法不一樣

就是說binding service比start service多了一個解除bind的過程

當所有的與服務的連接都被unbind時,服務就被銷燬了

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章