当前位置: 代码迷 >> Android >> android java开发 第四天 之(后台老板服务处理完业务数据后,传送给ui Activity并刷新界面)
  详细解决方案

android java开发 第四天 之(后台老板服务处理完业务数据后,传送给ui Activity并刷新界面)

热度:98   发布时间:2016-05-01 14:43:29.0
android java开发 第四天 之(后台服务处理完业务数据后,传送给ui Activity并刷新界面)


1、之前我们实现了activity 和services绑定,我们可以在activity通过service对象执行service各种函数。

2、当然也可以将activity.this传给services中保存起来。待service处理业务数据如(网络读写后)数据发送给activity。

3、重点:service保存了activity.this,当然可以调用activity函数,但是ui相关的函数的不可以调用的,android不允许在其他线程中(也包括其他activity)中直接执行其他activity的ui更新操作。否则会出现运行时异常:E/AndroidRuntime(14701): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.


     所以:我们只能界面Activity定义Handler对象,实现消息接受接口,绑定服务后,把Handler对象set给services保存起来。待service业务数据处理完毕,并把数据传递给activity后,service执行Handler对象,handlerObj.sendMessage(msg) 发送消息给Activity。Activity收到消息后,调用更新ui方法即可。

  相关解决方案