有没有办法可以测试我的应用中是否还有其他活动?我希望在onDestroy方法中停止服务,但是如果我的应用程序中没有其他活动仍在堆栈中,则只想这样做。
我有调用停止主活动的onDestroy()方法中的服务。除了如果用户启动我的应用程序,然后在我的应用程序中启动一些活动,然后点击主屏幕和RELAUNCHES我的应用程序,它们将颠覆我的订单,主要活动现在将高于我的应用程序的其他活动时,这是完美的。从这种状态,如果他们点击后退按钮并“退出”我的主屏幕,他们将触发onDestroy()方法并终止服务,即使堆栈上还有其他活动打开。我想通过停止服务来避免这种情况,如果我确定我的其他活动没有在堆栈上打开。可能的?
答案 0 :(得分:16)
如何启动一项服务 只要我的任何一个继续运行 应用程序的活动仍然在 堆叠,但没有时停止 留?
请勿使用startService()
和stopService()
。相反,即使您不需要绑定连接,也请使用bindService()
和unbindService()
。绑定/解除绑定是引用计数。如果您使用bindService()
标记致电BIND_AUTO_CREATE
,则第一次bindService()
来电将启动您的服务。然后,当所有bindService()
来电都有匹配的unbindService()
来电时,Android会自动关闭您的服务。