Android 如何防止重新创建包含异步任务和服务的活动?

Android 如何防止重新创建包含异步任务和服务的活动?,android,android-intent,android-service,Android,Android Intent,Android Service,让我们假设我有两个活动:活动1,活动2。我从活动1开始活动2。活动2-带有图像和进度条的活动,用于显示在服务中启动的某个后台任务的执行进度 当我尝试从活动2中按硬件返回按钮时,它会将我带回活动1,这样即使服务仍在运行,我也可以再次启动活动2 所以问题是这样的:我怎样才能防止这种行为。我只需要开始活动2一次,并且在工作未完成时不退出活动2??另一种情况是,我可以从任务管理器停止我的应用程序,但服务将工作,然后我可以再次运行应用程序-使用新服务,而旧服务仍在运行?有哪些机制可以防止这种行为?谢谢 您

让我们假设我有两个活动:活动1,活动2。我从活动1开始活动2。活动2-带有图像和进度条的活动,用于显示在服务中启动的某个后台任务的执行进度

当我尝试从活动2中按硬件返回按钮时,它会将我带回活动1,这样即使服务仍在运行,我也可以再次启动活动2

所以问题是这样的:我怎样才能防止这种行为。我只需要开始活动2一次,并且在工作未完成时不退出活动2??另一种情况是,我可以从任务管理器停止我的应用程序,但服务将工作,然后我可以再次运行应用程序-使用新服务,而旧服务仍在运行?有哪些机制可以防止这种行为?谢谢


您可以在启动时从
活动
类绑定到本地服务。绑定后,您的
活动可以调用该服务声明的任何公共方法。这将允许您的
活动
绑定到该服务,然后检查该服务当前是否正在执行任何工作。您可以使用类似于
isRunning()
或类似的方法。如果该服务当前未执行任何工作,则可能需要启动新作业。如果它已经在执行某项任务,则可以显示该任务的当前进度

您应该阅读Android开发者网站上的文章,了解如何做到这一点