2010-04-26 48 views
0

如果应用程序通过bindServicestartService开始Service,此服务对象是否会从与应用程序不同的进程运行?应用程序的服务是否可以运行在不同的进程中?

我问,因为许多Android示例项目开始一个服务,并使用IPC看起来完全没有必要考虑,根据Android Service文档,“......服务,像其他应用程序对象一样,在主线程中运行他们的托管过程。“

如果连接到由您自己以外的应用程序启动的Service,IPC,AIDL和IBinder接口似乎很有用。

这是正确还是公平的理解?

回答

1

如果应用程序通过 bindService或startService开头的服务,将在本 服务对象曾经从工艺 不同于 应用程序的不同运行?

是的,通常如果服务在另一个应用程序中实现。

我问,因为很多Android例如 项目开始服务和 使用IPC

真的传达给他们?

IPC,AIDL和的IBinder接口 只有当连接到 服务比自己的其他应用程序 开始显得非常有用。

IPC和AIDL,是的。粘合剂,没有。 You can use that locally too

+0

“真的吗?”是的,我也很惊讶,因为在同一过程中只使用IPC与您的服务进行通信似乎没有必要。因为这是不必要的,您会建议什么是与同一过程中正在运行(并且只会运行)的服务进行通信的最佳方式? – skyler 2010-04-26 21:44:06

+0

那么,你将如何使用它有所不同。我在一些书中有一些很好的章节,这些章节进入了许多血淋淋的细节。 :-)我会从本地绑定模式开始,按照上面链接到的示例项目。只要您不打算让服务在所有活动结束后继续运行,就应该可以工作。在后一种情况下,您需要使用'startService()'而不是'bindService()'(或者除此之外)。你绝对*不需要的是AIDL在本地唯一的情况。 – CommonsWare 2010-04-26 21:54:06

相关问题