Service介绍

Service是Android四大组件之一,主要在后台运行,无用户界面。它与Activity的主要区别在于Service不涉及用户交互,即使应用关闭仍可运行。Service生命周期包括onCreate(),onStartCommand(),onDestroy(),onBind()和onUnbind()方法。Service常用于后台任务,如播放音乐和下载文件。
部署运行你感兴趣的模型镜像

目录

1.Service---服务,是四大组件之一,和Activity非常相似,一般运行在后台,没有用户界面,可执行的程序。

2.Activity和Service的区别

(1)不同点:

(2)相同点:

Service特点

Service生命周期


2.Activity和Service的区别

(1)不同点:

Activity:可以和用户交互,页面可见。

Service:后台运行,没有界面。

(2)相同点:

在清单文件注册,都有自己的生命周期。

Service特点

service在后排运行,不用与用户进行交互。即使应用退出,服务也不会停。当应用进程被杀死是,服务便会停止。

service运行在主线程中,当需要执行耗时操作的时候,需要在服务中创建子线程完成。

service的用途:播放音乐;后台下载大文件等。

Service生命周期

onCreate():创建服务的时候回调;

onStartCommand():开始服务的时候回调;

onDestroy():销毁服务的时候回调;

onBind():绑定服务的时候回调;

onUnbind():解绑服务的时候回调;

@Override
    public IBinder onBind(Intent intent) {
        Log.i("---myservice2", "onBind: ");
        return new MyBind();
    }

    @Override
    public void onCreate() {
        super.onCreate();
        Log.i("---myservice2", "onCreate: ");
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.i("---myservice2", "onStartCommand: ");
        return super.onStartCommand(intent, flags, startId);

    }

    @Override
    public boolean onUnbind(Intent intent) {
        Log.i("---myservice2", "onUnbind: ");
        return super.onUnbind(intent);
    }
    @Override
    public void onDestroy() {
        Log.i("---myservice2", "onDestroy: ");
        super.onDestroy();
    }

    public class MyBind extends Binder{

    }


    public void StartService(View view) {
        Intent intent = new Intent(this,MyService.class);
        startService(intent);//开启服务
    }

    public void StopService(View view) {
        Intent intent = new Intent(this,MyService.class);
        stopService(intent);//停止服务
    }
    public void bindservice(View view) {
        Intent intent = new Intent(this,MyService2.class);
        bindService(intent,serviceConnection,BIND_AUTO_CREATE);//绑定服务
    }

    public void unbindservice(View view) {
        unbindService(serviceConnection);//解除绑定服务
    }
MyService2.MyBind myBind;
//服务连接
    ServiceConnection serviceConnection = new ServiceConnection() {
        @Override

        public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
            myBind=(MyService2.MyBind)iBinder;//有联系的
        }

        @Override

        public void onServiceDisconnected(ComponentName componentName) {
            //断开联系
        }
    };

您可能感兴趣的与本文相关的镜像

HunyuanVideo-Foley

HunyuanVideo-Foley

语音合成

HunyuanVideo-Foley是由腾讯混元2025年8月28日宣布开源端到端视频音效生成模型,用户只需输入视频和文字,就能为视频匹配电影级音效

在Kubernetes中,Service是一种抽象概念,它定义了一组Pod的逻辑集合和一种可以访问它们的策略,为Pod提供了稳定的网络端点。以下是详细介绍: ### 作用 - **服务发现**:Kubernetes中的Pod是有生命周期的,可能会动态创建、销毁。Service为一组具有相同功能的Pod提供了一个固定的IP地址和DNS名称,使得其他Pod可以通过这个固定的地址来访问它们,无需关心具体Pod的IP地址变化。 - **负载均衡**:Service可以将请求均匀地分发到后端的多个Pod上,从而实现负载均衡,提高应用的可用性和性能。 ### 类型 - **ClusterIP**:默认类型,服务只能在集群内部访问,通过分配一个集群内部的虚拟IP地址来实现。 ```yaml apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 ``` - **NodePort**:在每个节点上开放一个端口,外部可以通过节点的IP地址和该端口访问服务。 ```yaml apiVersion: v1 kind: Service metadata: name: my-service spec: type: NodePort selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 nodePort: 30007 ``` - **LoadBalancer**:使用云提供商的负载均衡器,将流量导向服务。 ```yaml apiVersion: v1 kind: Service metadata: name: my-service spec: type: LoadBalancer selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 ``` - **ExternalName**:将服务映射到一个外部域名。 ```yaml apiVersion: v1 kind: Service metadata: name: my-service namespace: prod spec: type: ExternalName externalName: my.database.example.com ``` ### 工作原理 - **标签选择器**:Service通过标签选择器(Label Selector)来关联一组Pod。只有带有指定标签的Pod才会被纳入到Service的负载均衡池中。 - **Endpoint对象**:Kubernetes会为每个Service创建一个对应的Endpoint对象,该对象记录了所有匹配标签选择器的Pod的IP地址和端口信息。当请求到达Service时,会根据Endpoint对象中的信息将请求转发到后端的Pod上。 ### 创建和管理 - **创建**:可以使用`kubectl create -f service.yaml`命令来创建一个Service,其中`service.yaml`是包含Service定义的YAML文件。 - **查看**:使用`kubectl get services`命令查看集群中的所有Service。 - **删除**:使用`kubectl delete service <service-name>`命令删除指定的Service
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值