Android邮件客户端,远程进程与否

时间:2012-09-03 18:20:13

标签: android android-service

作为Android平台的新手,我被赋予了实施电子邮件客户端的任务。为此,我想使用一个始终在后台运行的服务(客户端应该在服务器获取电子邮件时始终接收电子邮件,客户要求)。

现在我已经调查了android中的服务,但似乎无法找到关于服务是本地还是远程服务的任何好答案。

选择一个优于另一个的主要优点/缺点是什么?请记住,服务必须始终运行。我知道我知道。坏。但它对于应用程序的核心功能至关重要。

2 个答案:

答案 0 :(得分:2)

首先,在Android上从这样的远程服务器进行即时通知的正确/有效方法是使用Google Cloud Messaging。 GCM允许您通过向应用程序发送Intent来远程唤醒设备,然后您可以将其用作从服务器获取消息的信号,向状态栏发送通知等。

使用永久运行的服务执行您所描述的内容将对电池寿命产生重大影响,除非您完全正确地完成所有操作。保持手机始终处于唤醒状态并不是一个可行的选择。使用GCM并且不要为此推出自己的解决方案。

但是,由于您的问题是关于是否在单独的进程中运行服务更为一般,通常更简单更好,在这种情况下更简单意味着在同一进程中运行。您可以在内存中访问应用程序进程的所有各种元素,一般情况下,您可能会有更轻松的时间。你的事件都会发生在同一主线程的Looper上。一切都会更直接。

如果您还没有充分的理由为服务使用单独的流程,则应该在同一流程中运行它。

答案 1 :(得分:0)

通常我不知道你为什么要使用另一个进程。如果你愿意 - 你将不得不处理进程间通信,包括所有这些AIDL,包裹等。

如果您保持相同的流程 - 在组件之间传输数据会更容易。

我认为制作多个流程的唯一理由是尽量避免Android Heap预算限制。您可以尝试在进程之间移动重物,并尝试将限制加倍。但是我认为你不需要这个,也是不好的方式。

因此,我建议不要使用流程并尽量保持简单。

祝你好运