android判断某服务是不是正在运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android判断某服务是不是正在运行相关的知识,希望对你有一定的参考价值。

android系统中,判断应用服务是否启动有两种方式:
1.根据包名判断,以下为判断代码:
public boolean checkApkExist(Context context, String packageName)
if (packageName == null || “”.equals(packageName))
return false;
try
ApplicationInfo info = context.getPackageManager()
.getApplicationInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
catch (NameNotFoundException e)
return false;



2. 根据Intent判断,以下为判断代码:
public boolean checkApkExist(Context context, Intent intent)
List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, 0);
if(list.size() > 0)
return true;

return false;

public boolean checkApkExist(Context context, String packageName)
if (packageName == null || “”.equals(packageName)) return false;
try
ApplicationInfo info = context.getPackageManager() .getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true;
catch (NameNotFoundException e) return false;

public boolean checkApkExist(Context context, Intent intent)
List<ResolveInfo> list = context.getPackageManager()
.queryIntentActivities(intent, 0);
if (list.size() > 0)
return true;

return false;
参考技术A * 用来判断服务是否运行.
* @param context
* @param className 判断的服务名字
* @return true 在运行 false 不在运行
*/
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;

for (int i=0; i<serviceList.size(); i++)
if (serviceList.get(i).service.getClassName().equals(className) == true)
isRunning = true;
break;


return isRunning;本回答被提问者和网友采纳

linux判断某服务是不是启动脚本怎么写

类似:
if 服务开启 ; then
fi

用上 service crond status 查看 crond 服务
ntpd 服务
snmpd 服务
好像还有 syslog什么的服务

各位高手,我只要判断条件就行

用ps命令结合grep命令查找该服务名是否存在即可达到效果:

svc="sendmail"
if ps -ef | grep $svc | egrep -v grep >/dev/null
then
    echo "$svc is started!"
else
    echo "$svc not found!"
fi

说明:

    ps -ef : 显示当前所有在运行的进程

    |:管道,即其前面命令的的输出,作为后面命令的输入

    grep service_name :  在输出信息中,查找service_name数据行

    egrep -v grep: 不显示grep查找命令本身

参考技术A 单纯查看服务是否启动:
service <service_name> status

判断是否启动:
service <service_name> status | grep "running"
若启动,$status 为 0;否则为 1。本回答被提问者采纳

以上是关于android判断某服务是不是正在运行的主要内容,如果未能解决你的问题,请参考以下文章

Android 如何判断指定服务是否在运行中 “Service”

SHELL判断服务是不是正在运行

linux判断某服务是不是启动脚本怎么写

shell脚本判断是不是有某进程在运行

Android:如何确定 IntentService 是不是正在运行?

Android:在应用程序被杀死后从小部件中查找服务是不是正在运行