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();
}
});
声明一个服务类继承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();
}
});
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories