安卓activity之间互相通信的问题

============问题描述============


大侠,如果我想在activity A中启动activity B,然后activity A还能向B发送状态信息,B再根据A发送来的状态决定自身的变化,比如A发送退出命令,B接收之后就finish,这样的想法能实现吗?
之所有有这样的需求是因为,比如在登录的时候,考虑到网络延迟的关系,在用户点按钮时,我想要出现一个loading的界面,覆盖在登录界面上面,然后当服务端返回成功,loading的那个界面就变成一个对号√的图片,失败就变成一个叉×的图片,并且短暂停留之后消失,这样应该怎么样实现呢?

============解决方案1============


可以使用Dialog,自定义一个ProgressDialog,点击按钮时,让这个Dialog.show,会有一个覆盖当前页面的弹出层,等完成之后,Dialog.dismiss()就能让Dialog消失,具体可以百度搜索 自定义Loading Dialog,教程挺多的,希望能帮到你

============解决方案2============


试试看activity A用startActivityForResult(),在activity B收到数据后根据服务端的数据判断显示哪一张图片,然后activity B返回从服务端获得的数据给activity A并finish(),同时你还可以在activity B的finish之前做其他时,当然这是理论上的,实际你先试试看吧

============解决方案3============


网络访问是在子线程里做的,所以你的需求应该是网络子线程和loading activity的通信,而不是loading activity与它父activity的通信。
至于网络子线程和loading activity的通信,采用现成的Looper/Handler模式就可以了。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。