为什么我需要在我的应用中使用两种服务?

时间:2012-04-21 14:21:43

标签: android android-service

我正在使用专用网络在机场的高级对讲机上开发类似MMS的应用程序。我使用套接字从特定服务器接收消息。如果用户登录消息系统,则用户应始终收到消息,直到他退出为止。

我解决此类问题的想法如下:

  1. 通过使用一个本地服务作为Manager服务,此服务将从UI接收命令,并使用一个远程服务来维护与服务器的连接。
  2. 当本地服务从UI接收不同的cmd时,它将检查存储在Application子类中的 UserState ,然后将所需信息发送到远程服务。
  3. 远程服务将生成不同的消息包以发送到服务器。
  4. 虽然接收程序如下:远程服务接收和解析不同的消息(如短信,联系人地址列表)后,它向本地服务发送必要的字符串,文件URI或对象,本地服务发送信息到活动。
  5. 我不知道这个想法是否会奏效。因为我需要一个像Manager这样的角色来处理不同的发送cmd和收到消息以及一致的连接,我的app应该是什么结构?

1 个答案:

答案 0 :(得分:0)

  

使用一个本地服务作为Manager服务,此服务将从UI接收命令,并使用一个远程服务来维护与服务器的连接。

没有。使用一个本地服务,期间。第二项服务没有增加任何价值;远程服务通过浪费RAM,CPU和电池使您的应用程序变得更糟,而不是更好。

  

你能告诉我一个如何让连接服务一直在运行的方法吗?

您无法“始终”运行服务。如果您使用startService()startForeground(),则最不可能自动终止。但是,如果用户愿意,用户可以选择强制停止您的应用或使用任务杀手。

  

对于服务文档,系统可以比远程服务(在自己的进程中运行)更容易杀死本地服务。

这是不正确的。