Android 从活动'检测服务可用性;s onCreate

Android 从活动'检测服务可用性;s onCreate,android,android-service,Android,Android Service,在活动中的onCreate中,我希望能够检测不同应用程序(我正在编写)中的服务是否可用并正在运行。AIDL的问题是没有同步选项。我想让我的活动实际等待,看看服务是否可用,如果不可用,则采取相应的行动 我想到的最佳答案是服务打开TCP套接字,活动尝试连接到它。如果成功,那么活动的onCreate将知道服务可用。然而,这充其量只是一个混乱 因此,底线是:我的活动的onCreate如何同步检查外部服务是否可用,并在从onCreate例程返回之前采取行动?您可以循环查看public列表返回的列表,然后

活动中的
onCreate
中,我希望能够检测不同应用程序(我正在编写)中的
服务是否可用并正在运行。AIDL的问题是没有同步选项。我想让我的活动实际等待,看看
服务是否可用,如果不可用,则采取相应的行动

我想到的最佳答案是服务打开TCP套接字,活动尝试连接到它。如果成功,那么活动的
onCreate
将知道服务可用。然而,这充其量只是一个混乱


因此,底线是:我的活动的
onCreate
如何同步检查外部
服务是否可用,并在从
onCreate
例程返回之前采取行动?

您可以循环查看public
列表返回的列表,然后

ActivityMAnager am=(ActivityMAnager)getSystemService(Context.ACTIVITY_服务);
ArrayList rsiList=am.getRunningServices(999);
布尔值=null;
对于(ActivityManager.RunningServiceInfo rsi:rsiList){
if(rsi.service.getPackageName().equals(“MYPACKAGE”){
发现=真;
打破
}
}
如果(找到){
//做任何事
}否则{
//另类
}
ActivityMAnager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
ArrayList<ActivityManager.RunningServiceInfo> rsiList = am.getRunningServices (999);
boolean found = null;
for (ActivityManager.RunningServiceInfo rsi: rsiList) {
    if (rsi.service.getPackageName().equals("MYPACKAGE") {
       found = true;
       break;
    }
}
if (found) {
    // do whatever
} else {
    // alternative
}