我需要的是与How to properly upgrade AIDL interfaces in Android?问题非常相似的问题,但我还希望在安装AIDL服务后启动更新版本的AIDL服务并停止旧版本。简单地说:我需要最新版本始终是正在运行的版本。 (当然,将保留较新版本的向后兼容性。)
详细说,我们说:
当安装应用B时,我以编程方式杀死这两个应用的进程以及AIDL服务的远程进程。无论我尝试在此之后启动包含在较新的应用程序B中的AIDL服务是没有用的,旧版本将始终重新启动(除非我卸载旧的应用程序A)。
有趣的事情是,我能够专门针对较新的AIDL服务启动(如果仅安装了两个应用程序,则从较新的应用程序绑定到服务),以及旧版本的AIDL服务以前从未启动过。我的意思是我启动旧的应用程序A,我能够在应用程序B中启动新版本的AIDL服务。如果旧版本的AIDL之前已经运行过至少一次,那么无论如何,即使在重新启动设备之后,Android也将始终在未来启动!