我有一项与BIND_AUTO_CREATE绑定(bind)到我的 Activity 的服务,并且以START_STICKY开头。我没有明确调用startService()。
由于当我的Activity被杀死时onDestroy()方法并不总是被调用,而onStop()方法并不可行,因为我不希望用户仅按下Home按钮时就停止服务,所以我不知道何时取消绑定(bind)我的服务。
这是我的问题:
最佳答案
在那种情况下,覆盖onStartCommand
(并返回START_STICKY
)是没有意义的,因为它不会被调用。
如果您不想在onPause
中执行此操作,则可以在onDestroy
中取消绑定(bind),这很好。如here所述,在极少数情况下,您的 Activity 在没有onDestroy
的情况下被杀死,因此它将被Android解除绑定(bind)(因此,您的服务也将被解除绑定(bind)和正确销毁):
至于
我建议您绑定(bind)其他人,否则应调用onUnbind
。尝试在此方法中放置一个断点,并验证它是否被命中。另外,请验证在这种情况下是否调用了服务onDestroy
。