service activity同步通信
来源:互联网 发布:ubuntu samba权限配置 编辑:程序博客网 时间:2024/05/22 00:41
@Override
public IBinder onBind(Intent intent) {
return new FirstBinder();
}
class FirstBinder extends Binder{
@Override
protected boolean onTransact(int code, Parcel data, Parcel reply,
int flags) throws RemoteException {
//接收Activity发送来的数据
String str=data.readString();
Log.i("t1",str);//处理Activity发送来的数据
reply.writeString("Service要发给Activity的数据");
return super.onTransact(code, data, reply, flags);
}
}
}
/**
* Activity和Service进行数据交互,通过Binder里面的onTransact和transact方法进行实现
* 通过binder.transact(0, data, reply, 0)和onTransact是同步进行的
*/
public class MainActivity extends Activity implements OnClickListener {
private Button mBtn_bindService=null;
private Button mBtn_sendReply=null;
private Binder mBinder=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mBtn_bindService=(Button)findViewById(R.id.btn_bindService);
mBtn_sendReply=(Button)findViewById(R.id.btn_sendReply);
mBtn_bindService.setOnClickListener(this);
mBtn_sendReply.setOnClickListener(this);
}
private ServiceConnection conn=new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
//把service返回过来的IBinder对象赋值给当前对象里面的binder
MainActivity.this.mBinder=(Binder)service;
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
};
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_bindService:
Intent intent=new Intent();
intent.setClass(MainActivity.this,TestService.class);
bindService(intent, conn, Service.BIND_AUTO_CREATE);
break;
case R.id.btn_sendReply:
Parcel data=Parcel.obtain();
Parcel reply=Parcel.obtain();
data.writeString("要发送给Service的数据 ");
try {
mBinder.transact(0, data, reply, 0);
//接收Service发送过来的数据
String str=reply.readString();
System.out.println(str);
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
}
- service activity同步通信
- Activity和Service通信
- Activity和Service通信
- Activity与Service通信
- Service与Activity通信
- Activity与Service通信
- Activity与Service通信
- Activity与Service通信
- Activity与Service通信
- Activity与Service通信
- service&activity通信
- activity+service通信
- Service与Activity通信
- Activity与Service通信
- Activity与Service通信
- Activity与Service通信
- Activity和Service通信
- service和activity通信
- ruby on rails 项目部署(Nginx + Passenger)
- 简单几步成为微信公众平台开发者
- Compressor 和 Limiter的区别
- hdu 1863 畅通工程
- 嵌入式 Linux流量监控工具- iftop (最全面的iftop教程)以及TC命令内核流量控制
- service activity同步通信
- 这同样也意味着,作为一种资源,租用大量计算能力来更快地完成工作,也许是一种更为合适的方案。
- 第一部分 3
- iOS7下滑动返回与ScrollView共存二三事
- 老鸟的Python入门教程
- Applet与浏览器之间的通信示例
- Android的代码同步repo
- Switching 命令大全
- echo中\r与\n的问题!