调用startService的Context

Sri*_*san 1 android android-context

我在Activity中使用了getApplication().bindService()或者只是bindService().是一个优于另一个.考虑到Activity具有生命周期,在什么情况下将使用Application上下文来启动/绑定到服务.

Com*_*are 5

用于结合从活动到一个服务,使用Application上下文(getApplication()).这是因为绑定本身表示需要作为配置改变处理(例如,通过onRetainNonConfigurationInstance())的一部分来处理的状态.一个活动实例可能会绑定,但是在配置更改之后,您可能不会取消绑定.使用Activityas作为Contextfor bindService() 可能会引入内存泄漏(新活动将间接引用保留回绑定到服务的原始活动).

但是,从活动启动服务不涉及活动中的框架强制状态.因此,使用startService()活动本身启动服务应该没问题.