您的位置:首页 > 移动开发 > Android开发

Android服务的方法回传调用

2015-09-23 16:20 489 查看
说明:



声明一个服务类继承Service:

public class DemoService extends Service {
@Override
public void onCreate() {
super.onCreate();
connectToServer();
}

@Override
public IBinder onBind(Intent intent) {
return new ServiceBinder();
}

private void connectToServer() {
Log.i("service_bind", "与服务器建立了连接");
}

private double add(double x, double y) {
return x + y;
}

private double muilt(double x, double y) {
return x * y;
}

// 定义Binder类的子类,该类要实现业务服务接口
private class ServiceBinder extends Binder implements IService {
@Override
public double add(double x, double y) {
return DemoService.this.add(x, y);
}

@Override
public double muilt(double x, double y) {
return DemoService.this.muilt(x, y);
}
}

}

服务类所需要的接口:

public interface IService {

     public double add(double x, double y);

     
public double muilt(double x,double y);

}

以下是如何调用:

首先:

绑定服务:

Intent intent = new Intent(MainActivity.this, DemoService.class);
bindService(intent, mServiceConn, Service.BIND_AUTO_CREATE);

获取服务的对象:

private ServiceConnection mServiceConn = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
if (service instanceof IService) {
mServiceBinder = (IService) service;
}
}

@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub

}
};

方法的调用:

btnAdd.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
double result = mServiceBinder.add(10, 20);
Toast.makeText(MainActivity.this, "" + result, 1000).show();
}
});

btnMuilt.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
double result = mServiceBinder.muilt(10, 20);
Toast.makeText(MainActivity.this, "" + result, 1000).show();
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android 服务 回传