Android判断后台服务是否开启的两种方法实例详解

最近项目用到后台上传,就开启了一个服务service。

但是刚开始用这种方法,有些机型不支持:酷派不支持。然后又换了第二种判断方法。

// public boolean isServiceWork(Context mContext, String serviceName) {

// boolean isWork = false;

// ActivityManager myAM = (ActivityManager) mContext

// .getSystemService(Context.ACTIVITY_SERVICE);

// List myList = myAM.getRunningServices(40);

// if (myList.size() <= 0) {

// return false;

// }

// for (int i = 0; i < myList.size(); i++) {

// String mName = myList.get(i).service.getClassName().toString();

// if (mName.equals(serviceName)) {

// isWork = true;

// break;

// }

// }

// return isWork;

// }

第二种是:传入service的包名

private boolean isServiceRunning(String ServicePackageName) {

ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {

if (ServicePackageName.equals(service.service.getClassName())) {

return true;

}

}

return false;

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐