展会信息港展会大全

Android中bindService的使用方法
来源:互联网   发布日期:2016-01-13 22:22:19   浏览:1243次  

导读:bindService用于绑定一个服务。这样当bindService(intent,conn,flags)后,就会绑定一个服务。这样做可以获得这个服务对象本身,而用startService(intent)的方法只能启动服务。 bindService方式的一般过程:①新......

bindService用于绑定一个服务。这样当bindService(intent,conn,flags)后,就会绑定一个服务。这样做可以获得这个服务对象本身,而用startService(intent)的方法只能启动服务。

bindService方式的一般过程:

①新建Service类BindService。在BindService类里新建内部类MyBinder,继承自Binder(Binder实现IBinder接口)。MyBinder提供方法返回BindService实例。

public class MyBinder extends Binder{

public BindService getService(){

return BindService.this;

}

}

实例化MyBinder得到mybinder对象;

重写onBind()方法:

@Override

public IBinder onBind(Intent intent) {

return mybinder;

}

②在Activity里,实例化ServiceConnection接口的实现类,重写onServiceConnected()和onServiceDisconnected()方法

ServiceConnection conn=new ServiceConnection(){

@Override

public void onServiceConnected(ComponentName name, IBinder service) {

}

@Override

public void onServiceDisconnected(ComponentName name) {

}

};

③在Activity的onCreate()方法里,新建Intent,并绑定服务

Intent intent=new Intent(MainActivity.this,BindService.class);

bindService(intent, conn,BIND_AUTO_CREATE);

④在Activity的onDestroy里面,添加

unbindService(conn);

如果不加这一步,就会报android.app.ServiceConnectionLeaked: ******.MainActivity has leaked ServiceConnection的异常。

bindService()的执行过程如下:

bindService(intent,conn,flag)->Service:onCreate()->Service:onBind()->Activity:onServiceConnected()

赞助本站

人工智能实验室

相关热词: bindService

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港