0

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

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

  1. 通过使用一个本地服务作为 Manager 服务,该服务将接收来自 UI 的命令,并使用一个远程服务来保持与服务器的连接。
  2. 当本地服务从 UI 接收到不同的 cmd 时,它会检查存储在 Application 子类中的UserState ,然后将所需的信息发送给远程服务。
  3. 远程服务将生成不同的消息包发送到服务器。
  4. 而接收过程是这样的:远程服务接收并解析不同的消息(如短信、联系人地址列表)后,将必要的字符串、文件URI或对象发送给本地服务,本地服务将信息发送给本地服务。活动。

我不知道这个想法是否会奏效。对于我需要像 Manager 这样的角色来处理不同的发送 cmd 和接收消息以及一致的连接,我的应用程序应该是什么样的结构?

4

1 回答 1

0

使用一个本地服务作为 Manager 服务,该服务将接收来自 UI 的命令,并使用一个远程服务来保持与服务器的连接。

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

你能告诉我一种方法如何使连接服务始终运行吗?

您不能让服务“始终”运行。如果您使用startService()and startForeground(),它将最不可能被自动终止。但是,用户可以选择强制停止您的应用程序或使用任务杀手,如果他们愿意的话。

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

这是不正确的。

于 2012-04-21T15:09:58.333 回答