`

绑定服务

 
阅读更多

本地服务(Local)不需要IPC,也不需要AIDL,主进程被Kill后,服务便会终止

远程服务(Remote Service)  独立的进程,因此在Activity所在进程被Kill的时候,该服务依然在运行,不受其他进程影响,并且使用AIDL进行IPC比较麻烦。一般用于系统的Service,这种Service是常驻的。

 

绑定Service有什么用?

通过Activity来执行Service中的一些功能

 

 

绑定服务的步骤:

1.创建一个类,extends Service

2.创建一个Binder对象

3.在onBind()方法中返回Binder对象

 

public class MyService extends Service {

    public MyService() {
    }

    private DownloadBinder mBinder = new DownloadBinder();

    class DownloadBinder extends Binder {

        public void startDownload() {
            Log.d("MyService", "startDownload executed");
        }

        public int getProgress() {
            Log.d("MyService", "getProgress executed");
            return 0;
        }

    }

    @Override
public IBinder onBind(Intent intent) {
        return mBinder;
    }
....

 

 

 

4.主线程中,创建Connection对象,通过downloadBinder对象来调用各种方法

 

private ServiceConnection connection = new ServiceConnection() {

    @Override
public void onServiceDisconnected(ComponentName name) {
    }

    @Override
public void onServiceConnected(ComponentName name, IBinder service) {
        downloadBinder = (MyService.DownloadBinder) service;
        downloadBinder.startDownload();
        downloadBinder.getProgress();
    }
};

 

 5.主线程中添加启动服务,绑定服务的代码

Intent intent = new Intent(this, DownloadService.class);
startService(intent); // 启动服务
bindService(intent, connection, BIND_AUTO_CREATE); // 绑定服务

 

 

分享到:
评论

相关推荐

    绑定服务BoundService利用扩展的IBinder类实现

    其中,绑定服务(Bound Service)是一种特殊的服务类型,它允许其他组件如活动(Activity)、BroadcastReceiver等通过接口直接与其交互。本篇文章将深入探讨如何利用扩展的IBinder类来实现绑定服务。 首先,我们...

    绑定服务调用服务里的方法

    在某些场景下,我们需要与服务进行更紧密的交互,比如调用服务中的特定方法,这时就需要使用到“绑定服务”(Bound Service)。本篇文章将详细介绍如何通过`bindService`方法来实现这一功能。 ### 1. 绑定服务的...

    域名绑定服务器

    2. **服务器绑定域名**:在服务器端,我们需要在IIS(Internet Information Services,互联网信息服务)中新建一个网站,并将这个网站与你的域名关联。在IIS管理器中,选择"服务和应用程序",然后找到"IIS",接着...

    android 绑定服务客户端

    服务有两种主要类型:启动服务(Started Service)和绑定服务(Bound Service)。本篇文章将详细探讨“Android绑定服务客户端”的相关知识点,以及如何实现客户端与服务端之间的交互。 **一、绑定服务的基本概念** ...

    android 绑定服务服务端

    - **绑定服务的优势**:相比于启动服务,绑定服务更节省系统资源,因为它们只在有连接时运行,并且可以提供直接的接口进行通信。 2. **创建服务端** - **定义服务类**:首先,你需要创建一个继承自`Service`的类...

    Android Mediaplayer本地音乐播放器(绑定服务)

    本文章介绍MediaPlayer本地音乐...Activity与绑定服务Service之间的交互是本文章的重点(这里需要说明一点的是,Activity不能直接访问服务对象中的方法,所以才有了我们一下的介绍,这也是为服务的安全等方面的考虑)。

    HP双网卡绑定服务器和交换机配置说明(中文双语).pdf

    HP双网卡绑定服务器和交换机配置说明(中文双语).pdf

    本地服务(绑定与未绑定)

    服务可以分为两类:绑定服务和未绑定服务。 1. **未绑定服务(Unbound Service)**: 未绑定服务通常用于执行与UI不直接相关且不需要与调用者保持紧密连接的任务。一旦服务启动,它将持续运行,直到服务自己停止...

    绑定服务BoundService详解之AIDL的使用(自定义属性也包含其中)

    在Android开发中,服务(Service)是四大组件之一,主要用于在后台执行长时间运行的任务,而绑定服务(Bound Service)则是服务的一种特殊形式,它允许其他组件(如Activity或BroadcastReceiver)通过接口与服务进行交互...

    Activity绑定Service(Kotlin)

    `onStartCommand()`用于处理通过`startService()`启动的服务,`onBind()`则用于处理绑定服务。 4. **启动Service** 使用`startService()`方法启动Service,此操作不会返回结果,但Service会一直运行直到调用`stop...

    SAE域名绑定服务申请表.pdf

    【SAE域名绑定服务申请表】是新浪云(Sina App Engine, SAE)提供的一项服务,用于将用户的自定义域名与SAE上的应用程序进行关联,以便用户可以通过自己的域名访问SAE上的应用。该服务主要面向互联网领域的各种类型...

    android 绑定服务

    可运行的Android绑定音乐服务的源代码,对于初学者掌握Android项目的开发很有帮助

    安卓之绑定服务(简便方法)

    安卓之绑定服务之简便方法 在这里先介绍一下服务: Service(服务)是能够在后台执行长时间运行操作并且不提供用户界面的应用程序组件。 绑定服务提供客户端—服务器接口以允许组件交互、发送请求、获得结果、甚至是...

    绑定的方式开启服务

    我们将了解绑定服务的工作原理、优势以及如何创建和使用绑定服务。 **绑定服务的基本概念** 绑定服务是一种允许其他应用组件(如Activity)与其进行交互的服务。相比于启动服务(Start Service),绑定服务更加轻量...

    安卓之绑定服务

    绑定服务提供了一个客户端–服务器接口,允许组件与服务进行交互、发送、请求、获取结果、甚至是利用进程间通信(IPC)跨进程执行这些操作,仅当与另一个应用程序绑定时,绑定服务才会执行,多个组件可以同时绑定...

    android 实验6服务

    在提供的项目CreateService的基础上,实现以下功能:主Activity绑定服务,服务的业务逻辑为:子线程暂停5秒钟,然后发送一条通知,点击通知能否返回主Activity。 具体步骤: Step 1创建一个服务类继承自Service,在...

    BindService绑定Service播放音乐

    绑定服务通常用于需要频繁交互或者需要对服务有精确控制的场景,比如播放音乐时调整音量、切换歌曲等。 在"PlayMusicSer"项目中,我们可以推测存在一个自定义的Service,这个Service负责处理音乐播放的相关逻辑,如...

    安卓后台服务相关-绑定的方式开启服务.zip

    - "JavaApk源码说明.txt"可能包含了关于如何实现绑定服务的代码注解和步骤,值得查阅以深入理解绑定服务的实现细节。 - "下载更多打包源码~.url"可能是指向更多安卓服务相关示例代码的链接,可以帮助扩展学习。 -...

    Android绑定方式开启服务

    绑定服务可以设置更细粒度的权限控制,只有拥有特定权限的组件才能绑定服务。 总的来说,Android的绑定方式开启服务是一种高效且灵活的机制,适用于需要与服务进行深度交互的应用场景。通过理解并熟练运用这一机制...

Global site tag (gtag.js) - Google Analytics