重命名导出的意图服务
Rename exported Intent Service
我在同一台设备上有多个应用程序,其中一个有一个 IntentService,其他应用程序通过以下方式调用它:
val intent = Intent()
intent.component = ComponentName(APP_PACKAGE, INTENT_APP_SERVICE)
intent.putExtras(key, value)
context.startService(intent)
一切正常。
我的问题是,当我更改导出它的应用程序中的服务名称时会发生什么?
我是否也必须更改 INTENT_APP_SERVICE 以匹配新名称?
或者还有其他向后兼容的方法吗?
what happens when i change the name of the service in the app which exports it?
你完蛋了,除非你能以某种方式强迫每个用户更新你的每个应用程序。
Do i have to change the INTENT_APP_SERVICE to match the new name as well?
是的,考虑到您的设置。
Or is there another way to be backwards compatibility?
第 1 步:使用自定义 action
将 <intent-filter>
添加到 <service>
第 2 步:设置您的 startService()
Intent
以使用该操作 plus setPackage()
,而不是 ComponentName
现在,您服务的客户端独立于服务本身的名称,因此您可以毫无问题地重构或重命名该服务。
我在同一台设备上有多个应用程序,其中一个有一个 IntentService,其他应用程序通过以下方式调用它:
val intent = Intent()
intent.component = ComponentName(APP_PACKAGE, INTENT_APP_SERVICE)
intent.putExtras(key, value)
context.startService(intent)
一切正常。
我的问题是,当我更改导出它的应用程序中的服务名称时会发生什么? 我是否也必须更改 INTENT_APP_SERVICE 以匹配新名称? 或者还有其他向后兼容的方法吗?
what happens when i change the name of the service in the app which exports it?
你完蛋了,除非你能以某种方式强迫每个用户更新你的每个应用程序。
Do i have to change the INTENT_APP_SERVICE to match the new name as well?
是的,考虑到您的设置。
Or is there another way to be backwards compatibility?
第 1 步:使用自定义 action
<intent-filter>
添加到 <service>
第 2 步:设置您的 startService()
Intent
以使用该操作 plus setPackage()
,而不是 ComponentName
现在,您服务的客户端独立于服务本身的名称,因此您可以毫无问题地重构或重命名该服务。