Android 从同一应用程序的不同进程启动本地服务

Android 从同一应用程序的不同进程启动本地服务,android,android-service,Android,Android Service,我在Android文档中找到了以下代码片段 A service runs in the main thread of its hosting process... 及 我相信这意味着对startService()的多次调用不会导致该服务的多个实例 考虑以下场景: 我有一个名为MyApp的应用程序,它包含两项服务:MyService和MyRemoteService。在这里,MyService是一个本地服务,而顾名思义,MyRemoteService在一个单独的进程中运行 如果我调用startS

我在Android文档中找到了以下代码片段

 A service runs in the main thread of its hosting process...

我相信这意味着对startService()的多次调用不会导致该服务的多个实例

考虑以下场景:

我有一个名为
MyApp
的应用程序,它包含两项服务:
MyService
MyRemoteService
。在这里,MyService是一个本地服务,而顾名思义,MyRemoteService在一个单独的进程中运行

如果我调用
startService()
MyApp
的主
活动启动
MyService
,然后也从
MyRemoteService
启动
MyService,会发生什么


MyService将在哪个进程中运行?在两个不同的进程中是否会运行两个不同的MyService实例:一个在托管我的主活动的进程中,另一个在托管MyRemoteService的进程中?在这种情况下,上述两个片段将如何维持?任何帮助都将不胜感激。谢谢。

“如果我调用startService()从我的主要活动启动MyService,然后从远程服务MyRemoteService(在单独的进程中运行)启动MyService,该怎么办?”——我建议您实质性地扩展此描述。你的总体问题取决于这一描述,就目前而言,我不知道是否涉及到多少应用程序。例如,
Activity
MyService
是否在同一个应用程序中?
MyRemoteService
是否与
Activity
MyService
在同一个应用程序中?依此类推。@Commonware我编辑了我的问题,并作了必要的澄清。“两个不同的进程中是否会运行两个不同的MyService实例:一个在托管我的主要活动的进程中,另一个在托管MyRemoteService的进程中?”--这是我的直觉,虽然我从未尝试过这种情况。我也有同样的感觉,但我希望这项服务只有一个实例。伙计,我发现跨不同进程的同步是一件很痛苦的事。“我希望该服务只有一个实例”——这应该是可能的,但它需要两个服务都使用AIDL。照此看,没有“本地”和“远程”服务;它们都同样“遥远”。这仅仅是他们在哪个过程中运行的问题。
 Note that calls to startService() are not nesting: no matter how many times you call startService(), a single call to stopService(Intent) will stop it.