我试图让我的应用程序完成主要活动(而不是在后台保持活动应用程序),同时保持服务进程处于活动状态。
如果用户按下主页按钮并离开我的应用程序或从我的应用程序外部启动另一个活动,我希望该活动被关闭并且不列为活动应用程序。
然而,重要的是该过程保持活力。我不希望我的后台服务也死掉。
这样做的最佳方法是什么?
我试图让我的应用程序完成主要活动(而不是在后台保持活动应用程序),同时保持服务进程处于活动状态。
如果用户按下主页按钮并离开我的应用程序或从我的应用程序外部启动另一个活动,我希望该活动被关闭并且不列为活动应用程序。
然而,重要的是该过程保持活力。我不希望我的后台服务也死掉。
这样做的最佳方法是什么?
您不应该强行关闭应用程序,因为系统本身可以很好地处理这个问题。相反,您应该调用 finish() 来表示应用程序已完成并且可以处理(您的服务将继续运行)。
默认情况下,服务没有 UI。一旦开始,它们就会运行,直到它们崩溃或被杀死。用户可以关闭您的应用程序并启动一个新应用程序,该服务将持续存在。
另一方面,活动只有在可见时才会运行。当用户导航到另一个活动时,前一个活动被暂停、停止或终止。
执行您上面简要描述的一种简单方法是创建一个启动服务的活动。这样,当使用离开您的活动时,服务将继续在后台运行。
如果您希望您的 Activity 在出现新 Activity 时完全消失,只需在您的 Activityfinish()
的onPause()
oronStop()
方法中调用(更适合您的应用程序)。