8

我试图弄清楚将 android 远程服务作为我的客户端应用程序的一部分(使用 android:process=":remote")与使其成为单独的服务应用程序的优缺点。

在这两种情况下,服务都将在自己的单独进程中运行并拥有自己的堆等。但是,当我们将其设为单独的应用程序时必须存在一些差异,因为它将拥有自己的应用程序沙箱。根据场景,我发现了许多使用它们的示例和首选方法,但我试图了解它的内部技术细节。

这方面有什么好的信息来源吗?

编辑:如果服务和客户端进程在同一个应用程序中运行,将对应用程序对象/上下文产生什么影响。它会被其中一个进程覆盖吗?或者每个进程会有两个应用程序对象,作为一个应用程序的一部分听起来不正确。

4

1 回答 1

6

您的问题之前已部分回答。在这里检查:

但是,如果您仍然考虑在后台运行某些东西的想法,您可以查看此参考:

让事情在后台运行显然不是一个好的选择。除非你出于任何原因真的需要它。因此,请注意不要用用户自己的意愿没有有意识地激活的不必要的后台服务来惹恼用户。在这种情况下,制作一个单独的应用程序或一种由用户激活的功能是一条更智能、更安全的道路。

如果您需要能够编写一个可以在远程进程中与客户端执行复杂通信的服务(不仅仅是使用 Context.startService 向它发送命令),那么您可以使用 Messenger 类而不是编写完整的 AIDL 文件。如果您只需要远程服务,则应遵循本教程

于 2014-01-17T00:35:47.847 回答