package com.dumaisoft.wxbremoteservice;
interface IWxbService {
void setName(String name);
String getName();
}
package com.dumaisoft.wxbremoteservice;
import com.dumaisoft.wxbremoteservice.IWxbService.Stub;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;
public class WxbService extends Service {
private ServiceImpl serviceImpl;
//继承由IWxbService.aidl生成的com.dumaisoft.wxbremoteservice.IWxbService.Stub类
class ServiceImpl extends Stub{
private String _name;
@Override
public void setName(String name) throws RemoteException {
_name = name;
}
@Override
public String getName() throws RemoteException {
return _name;
}
}
//将ServiceImpl做一个简单的单例模式
private ServiceImpl getInstance(){
if(serviceImpl == null){
serviceImpl = new ServiceImpl();
}
return serviceImpl;
}
@Override
public IBinder onBind(Intent intent) {
return getInstance();
}
}
<service android:name="WxbService">
<intent-filter>
<action android:name="com.dumaisoft.wxbremoteservice.REMOTE_SREVICE"/>
</intent-filter>
</service>
package com.dumaisoft.wxbremoteserviceclient;
import com.dumaisoft.wxbremoteservice.IWxbService;
import android.app.Activity;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private Button btnBind;
private Button btnSetName;
private Button btnGetName;
private IWxbService serviceProxy; //远程服务的代理
private ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
//获取远程服务代理
serviceProxy = IWxbService.Stub.asInterface(service);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnBind = (Button) this.findViewById(R.id.btnBind);
btnSetName = (Button) this.findViewById(R.id.btnSetName);
btnGetName = (Button) this.findViewById(R.id.btnGetName);
btnBind.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent service = new Intent();
//Remote Service Action name
service.setAction("com.dumaisoft.wxbremoteservice.REMOTE_SREVICE");
bindService(service, conn, Service.BIND_AUTO_CREATE);
}
});
btnSetName.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
serviceProxy.setName("MyName");
} catch (RemoteException e) {
e.printStackTrace();
}
}
});
btnGetName.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
String name = serviceProxy.getName();
Toast.makeText(getApplicationContext(), name, Toast.LENGTH_LONG).show();
} catch (RemoteException e) {
e.printStackTrace();
}
}
});
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有