我用mainactivity开了个子线程socket监听网络数据,然后跳转到第二个activity,当网络有数据发过来怎么更新当前(即第二个)activity的界面内容。

解决方案 »

  1.   

    这个问题其实是子线程怎么去更新UI线程,百度一下很多详细的帖子
    方法一:用Handler --推荐方法二:用Activity对象的runOnUiThread方法更新 方法三:View.post(Runnable r) 方法四:BroadCastRecerver , 
      

  2.   

    1、在mainActivith中new 一个Handler,
    2、然后将handler做为需要传递的对象传到第二activity中,
    3、在第二个activity中收到后,立即new 一个Msg对象,给 what指定一个值,同时将需要被改变的UI赋值给msg.obj, 使用handler.sendMessage(msg)发送。
    4、这样mainactivity收到后,保存msg.obj对象,当监听到数据的时候,直接对这个对象进行操作
    当然第3步给msg.obj赋值,可以是第二个activity中的handler,这样对第二个activity的UI操作,就可以不用跑回mainactivity中了
      

  3.   

    两个activity频繁通信这个逻辑就很别扭,所以用handler或者回掉借口都是一样的格格不入,相对于来说广播要舒服一些,,嫌麻烦就用Eventbus吧
      

  4.   

    上面的人都回复过了, 确实, 你可以开启一个service去监听,当监听到 action 要做出反应时,发个广播, 然后在接受到广播时,做出跳转动作, 当然跳转动作要在主线程中哦.