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时,服务就被销毁了

 

 
 

你可能感兴趣的:(Xamarin,Android)