我有一个启动服务的Activity。当活动关闭时,我希望服务继续在后台运行。我在这里有几个问题。
关闭活动屏幕会导致活动实际停止吗?或者我是否需要强制停止它以使其停止?
如果关闭屏幕确实导致它停止,那么我假设我需要使用startService
来启动它。那是对的吗?如果是这种情况,有没有办法在下次活动开始时获得正在运行的服务的句柄?如果不是这样,那么我可以绑定到服务。
答案 0 :(得分:3)
当您的Activity
在屏幕上不再显示时,它会停止。停止与Activity
绑定的Service
不会停止Service
。但是,您需要确保在Service
来电Activity
时取消与onDestroy()
的绑定,以确保您没有任何悬挂处理程序等。
您可以像第一次一样重新绑定到正在运行的Service
。发送Intent
以启动已经运行的Service
不会创建它的第二个实例,因此这是安全的。
开始像您所描述的Service
的好方法是使用Context.BIND_AUTO_CREATE
参数启动它来调用bindService()
。
所有这些的详细信息可以在Android docs about bound services找到。起初可能有点混乱。请仔细遵循教程代码,因为听起来您的问题很好地映射到他们提供的样本上。