天天看點

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一樣,有自己的生命周期,隻是沒有界面,其也是運作在主線程裡面的,是以當有耗時的操作時,一定要另開一個線程來完成這個操作。不然就會卡死。

Service與Intentservice

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

Service與bindingService

服務從建立到銷毀,有兩種方式,一為start service ,其二是bind service,兩者都要

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

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

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