当用户在多活动应用程序中返回主屏幕时停止IntentService

时间:2018-03-20 15:30:18

标签: android android-lifecycle intentservice activity-lifecycle

我的Android应用程序存在一个主要活动,用户可以在其中启动其他几项活动。为了获得永久性的关键字识别(语音识别),我使用了在主要活动的IntentService中启动的onCreate()。只要应用程序的任何活动位于前台,该服务就需要正常工作。

然而,该服务一直使用麦克风,因此一旦用户返回他/她的主屏幕就停止服务。我知道有关活动生命周期的基础知识,但我的问题是:当用户从任何活动返回主屏幕时,停止IntentService的最佳方法是什么?

要在重新打开应用程序时重新启动服务,我想到了一个所有活动都继承自的超类。在超类中,我将设置一个静态布尔值serviceStopped,当用户进入他/她的主屏幕时(服务停止),该布尔值设置为true。在onResume()方法中,将检查此布尔值,并在需要时重新启动服务。

1 个答案:

答案 0 :(得分:0)

据我所知,无法检测用户是否离开您的应用程序并且是否在主屏幕中。

我认为没有一种简单的方法可以检测您的应用程序是否已打开/关闭;但我发现这个How to get the list of running applications?,我认为它可以帮助你。

您还可以尝试在后台启动服务,并检查您的任何活动何时开始或被销毁。