如何在Android中等待服务停止

如何在Android中等待服务停止,android,android-service,splash-screen,Android,Android Service,Splash Screen,我可以等到我所有的服务都停止了吗?我尝试在我的android应用程序中制作一个splashscreen,我希望它能一直等到我的所有服务停止 ActivityManager manager = (ActivityManager) this .getSystemService(ACTIVITY_SERVICE); for (RunningServiceInfo service : manager .getRunningServi

我可以等到我所有的服务都停止了吗?我尝试在我的android应用程序中制作一个splashscreen,我希望它能一直等到我的所有服务停止

ActivityManager manager = (ActivityManager) this
            .getSystemService(ACTIVITY_SERVICE);
        for (RunningServiceInfo service : manager
                .getRunningServices(Integer.MAX_VALUE)){
        }
我尝试这个代码示例…我的问题是,我不知道如何在我的splashscreen活动中不断检查这个。
或者这不是一个好的解决方案。

使用
意向服务,而不是正常的
服务
,因为它在完成任务后会自动停止

现在,当此服务停止时,您可以发送
本地广播
,并在您的Splash
活动中接收此
广播

跟踪正在运行的服务和已停止的服务,您可以为此使用标志

例如,如果服务A停止自身并发送广播,则将其标志设置为
true

现在,在每个
广播上
接收检查所有标志是否为真,如果为真,停止启动屏幕并进入下一步,否则等待其他服务停止

示例

我们有三个服务A、B、C正在运行,与之相对应的是,我们的Splash活动中有三个标志stopA、stopB、stopC

现在当A结束时,它发送一个本地广播,然后在Splash Activity中接收,现在我们设置A的标志,即
stopA=true
;并检查服务B&C的标志是否为真(即其他服务是否已停止或运行)


如果
true
完成此活动,否则请等待其他广播。

在需要服务的启动屏幕中,您在做什么?您应该使用AsyncTask进行一次性过程,如:html、json、xml下载和解析…检查此答案。。。它帮助了我。。。[一个很好的解释][1][1]: