您的位置:首页 > 其它

Service(二):通信

2015-10-14 22:08 190 查看
课程:http://www.jikexueyuan.com/course/715_3.html?ss=1

在activity和service之间通信。

首先使用的是启动服务来通信。注意是如何使用Intent取得EditText的数据并传递给service的,在service是又是如何取出数据的。

在MainActivity中

public IBinder onBind(Intent intent) {

return new Binder();
}

public class Binder extends android.os.Binder{

public void setData(String data){

MyService.this.data = data;
}
}


View Code

总结下启动服务和绑定服务与活动通信的不同:

启动服务是通过Intent对象来取得数据,通过startService启动onStartCommand来过多成Intent对象的传递。

绑定服务是通过binder对象中的函数来完成通信。

前面讲的是从activity中获取数据到MyService,即从UI线程(主线程)从获取数据到子线程中,那么如何总子线程中获取数据到主线程中呢

示例中在子线程中完成数据的变化,要求将其显示在UI的TextView上。

这里用到了回调的方式。首先定交一个接口CallBack用于向UI中传递变化的数据,在activity中实现接口中的函数,取得数据,并以message的方式传递给Handler,再将其传递给TextView进行显示。

这个过程还是挺复杂的,需要细心体会。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: