您的位置:首页 > 移动开发 > Android开发

Android中如何判断service是否启动并停止

2017-07-05 15:46 537 查看
启动service时有两种方法:startService;bindService。

/*
* 判断服务是否启动,context上下文对象 ,className服务的name
*/
public static boolean isServiceRunning(Context mContext, String className) {

boolean isRunning = false;
ActivityManager activityManager = (ActivityManager) mContext
.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> serviceList = activityManager
.getRunningServices(30);

if (!(serviceList.size() > 0)) {
return false;
}
Log.e("OnlineService:",className);
for (int i = 0; i < serviceList.size(); i++) {
Log.e("serviceName:",serviceList.get(i).service.getClassName());
if (serviceList.get(i).service.getClassName().contains(className) == true) {
isRunning = true;
break;
}
}
return isRunning;
}


那么如何停止一个service呢?

stopService()和stopSelf()都可以停止通过startService()方式启动的service。

stopService需要传递startService(Intent service)时的intent对象作为参数,停止此intent对应的service。

stopSelf直接停止本service,不需要参数,在service中直接调用即可。

service退出时会调用onDestroy()函数,可以在此函数中进行释放等操作。例如执行MediaPlayer对象的release()并赋值为null,调用System.exit(0);退出应用程序等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: