首页 理论教育 使用bind方式启动服务器

使用bind方式启动服务器

时间:2023-06-10 理论教育 版权反馈
【摘要】:如果服务需要与调用者进行方法调用和数据交互,应该使用bindService()和unbindService()来启动、关闭服务。bindService()方法的完整方法名为bindService,该方法的三个参数解释如下:Intent 对象用于指定要启动的Service。ServiceConnection 对象用于监听调用者与Service 之间的连接状态。为了让同学们理解和使用bindService()方法来启动服务,接下来通过一个案例来演示。图13-5调用服务中的方法接下来单击“解绑按钮”按钮此时系统会调用onUnbind()方法解绑服务,如图13-6所示。

使用bind方式启动服务器

当程序使用startService()和stopService()来启动、关闭服务时,服务与调用者之间基本不存在太多关联,也无法与访问者进行通信、数据交互等。 如果服务需要与调用者进行方法调用和数据交互,应该使用bindService()和unbindService()来启动、关闭服务。

bindService()方法的完整方法名为bindService(Intent service, ServiceConnection conn, int flags),该方法的三个参数解释如下:

Intent 对象用于指定要启动的Service。

ServiceConnection 对象用于监听调用者与Service 之间的连接状态。 当调用者与Service 连接成功时将回调该对象的onServiceConnected(ComponentName name, IBinder service)方法;断开连接时将回调该对象的onServiceDisconnected(ComponentName name)方法。

flags:指定绑定时是否自动创建Service(如果Service 还未创建)。 该参数可指定为0 即不自动创建,也可指定为BIND_AUTO_CREATE 即自动创建。

为了让同学们理解和使用bindService()方法来启动服务,接下来通过一个案例来演示。 本案例实现了点击按钮绑定服务、调用服务中的方法以及解绑服务,具体步骤如下:

(1)创建程序

布局文件activity_main.xml 的代码如下:

(2)创建Service 类

接下来在服务中添加一个MyService 类,该类实现了绑定服务生命周期中的三个方法以及自定义的一个methodInService()方法。 MyService 类的代码如下:

(3)清单文件的配置

在清单文件中注册服务MyService,具体代码如下:(www.xing528.com)

(4)编写界面交互代码

接下来在MainActivity 中编写与页面交互的代码,用于实现绑定服务、调用服务中的方法以及解绑服务,具体代码如下:

(5)运行程序查看结果

运行当前程序,单击界面上的“绑定服务”按钮,此时在LogCat 窗口中会打印出服务绑定的Log 信息,如图13-4 所示。

图13-4 绑定服务

单击“调用服务中的方法”按钮,此时控制台会打印调用自定义的方法,如图13-5所示。

图13-5 调用服务中的方法

接下来单击“解绑按钮”按钮此时系统会调用onUnbind()方法解绑服务,如图13-6所示。

图13-6 解绑服务

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈