如何在没有重新启动的情况下在活动之间共享服务?

pjc*_*ard 6 android android-service android-activity

我正在使用SDK编写SIP应用程序.我的应用程序有很多活动,因此我使用服务的onCreate和onDestroy方法初始化和关闭SDK,以便我可以在应用程序的持续时间内运行它(而不仅仅是单个Activity).

我正在使用的示例应用程序调用startService然后泄漏服务 - 我不想这样做但我不确定我有替代方案.

我会喜欢做的是绑定到我的活动基类的OnCreate方法使用Context.BIND_AUTO_CREATE服务和取消绑定的OnDestroy.我的所有活动都从此延伸,因此我将在所有活动中提供服务.

但是,当配置发生变化或切换活动时会发生什么?服务是否会活动之间的短暂时间内被激活,或者是否保证不会?如果是前者,那么服务的使用是否会略微瘫痪?什么样的设计模式,我应该使用,使一些坚持正是我的应用程序的生命周期?

pjc*_*ard 3

我意识到我问错了问题。我假设当用户完成应用程序时应用程序将被销毁,但它可能不会,它只会坐在后台,我的服务也会如此。我想我需要重新设计。

此外,如果我真的想继续沿着这条路走(我现​​在不想),我可以将服务绑定到我的应用程序,然后它将在应用程序的生命周期中存在(正如我记得的,这将是无限期的,除非用户杀死它或 Android 回收它)。在这种情况下,我不需要专门调用 unbind,因为绑定将与应用程序一起被销毁。