2

假设我们有两个安装的 APK,每个 APK 具有相同的服务和相同的操作。就像使用的一种或图书馆一样。

我知道从服务的角度来看,最后安装的 APK 实际上是负责的。

当任何 APK 绑定到提及操作的服务时,我实际上无法指定要绑定到哪个服务器。或者我可以吗?

这一点很重要,我有两个不同版本的用于构建这些 APK 的同一个库。我来自某个 APK 的代码可能期望该服务是基于某些考虑构建的。

严格来说,我需要知道如果多个服务具有相同的名称、包名称(与实际的包名称不同)和操作,我如何绑定到特定服务。

读了这么痛苦的书,我很抱歉……

4

1 回答 1

1

这暂时无法更改。

有才华的程序员可以在一两分钟内改变这一点。

我知道从服务的角度来看,最后安装的 APK 实际上是负责的。

实际上,AFAIK,第一个获胜,而不是最后一个。

如果有多个同名,包名(与实际包名不同)和动作。

这是不可能的,因为您不能同时安装两个具有相同包名的应用程序。

可以使用不同包名称安装两个应用程序,但它们包含Service具有相同的完全限定类名并使用<intent-filter>共享相同的操作字符串导出的应用程序。正如我在对这个问题的评论中指出的那样,这是一个糟糕的设计。

话虽如此,您可以使用withsetComponent()等来识别有问题的。您将需要使用双重构造函数,在第一个参数中提供 APK 的包名,在第二个参数中提供完全限定的类名。IntentstartService()ServiceStringService

于 2012-12-09T14:53:16.307 回答