Android消息传递用啥好?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android消息传递用啥好?相关的知识,希望对你有一定的参考价值。

在activity1中开两个线程:

一个是socket客户端用于发送,一个是socket客户端用于接收。

activity1中有fragment1和fragment2,还有activity2,activity3

fragment1中有个按钮,按下之后发消息给发送线程,让发送线程给服务端发送命令,然后接收线程得到回复后把回复内容传递消息给fragment1,显示到fragment1的显示框中,fragment2中有个不一样的按钮,按下后也是做同样的事,只是发送的内容和接收的内容不一样,另外还有activity2,activity3中也有一个该activity专用的按钮,所以需要按下按钮的fragment或activity给发送线程传递消息,接收线程要给按下按钮的fragment和activity传递消息,这两个传递消息的工具怎么选呢?

这个首先要看你在什么场景下做消息传递,咱要具体问题具体分析:

    Activity与Activity,调用启动方法的时候传递即可

    Activity与Fragment,使用Bundle传递;

    Activity与Service,使用onBind进行消息传递

    接口回调

    BroadCast方式传递数据

    EventBus方式传递数据

    观察者模式传递数据

比较常用的是1、2、3、4;基本满足要求了,如果还无法达到要求酌情使用5、6、7;

追问

场景就在问题里说了,一个是按钮后,一个是socket接收后,我网上查过有很多方法,但不知道用哪种好
根据评论中的回答,因为发送接收基本没有改变activity,不是上一个或下一个所以是否可以排除1和2了,没有用service可以排除3了,5,6,7是发送给多个也不是,那是不是智能用4.接口回调这一个方式了?

参考技术A 消息推送解决方案概述 A、C2DM云端推送方案 在android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务。Android Cloud to Device Messaging (C2DM)是一个用来帮助开发者从服务器向Android应用程序发送数据的服务。

Android 应用上游消息传递是不是可靠?

【中文标题】Android 应用上游消息传递是不是可靠?【英文标题】:Is Android app upstream messaging reliable?Android 应用上游消息传递是否可靠? 【发布时间】:2014-02-09 15:51:15 【问题描述】:

我想使用 ccs 上游消息将消息从我的应用程序发送到 app ccs 服务器。我已经编写了 ccs app 服务器的代码并将其连接到 gcm 服务器。有时发送的消息会像即时一样快速传递到服务器,但大多数时候它们不会。我所有的消息都在 gcm.send() 函数中包含 ttl 为 0。如果我尝试使用 ttl 0 gcm 发送更多消息,则会出现“消息过多错误”。有什么方法可以确定通过上游方法发送的消息是否传递到 ccs 服务器(甚至在消息到达我们的 xmpp 应用服务器之前对客户端应用的任何确认)? gcm 客户端如何处理不同消息的 ttl。 (假设前 10 条消息没有 ttl,第 11 条消息的 ttl 为 5,之后 2 条消息的 ttl 为 0)。如果所有消息在不到 5 秒内连续发送(就像所有时间一样),这些消息将如何按顺序传递到 ccs 服务器?

谢谢, SM

【问题讨论】:

【参考方案1】:

与下游消息一样,ttl=0 的上游消息会立即发送,或者永远不会发送,具体取决于网络状态以及 GCM 设备客户端和 CCS 服务器之间的连接。

我描述了here 一个与一些以前的android 版本有关的问题。

简答:上游消息在 KK 中是可靠的,而不是在以前的版本中。

【讨论】:

以上是关于Android消息传递用啥好?的主要内容,如果未能解决你的问题,请参考以下文章

Android 应用上游消息传递是不是可靠?

android handler传递消息机制

Android:谷歌云消息传递错误

Android之Handler消息传递机制详解zz

Android之Handler消息传递机制详解zz

Android消息传递之EventBus 3.0