1.判断进程是否存在
/**
* 判断是否在主进程,这个方法判断进程名或者pid都可以,如果进程名一样那pid肯定也一样
*
* @return true:当前进程是主进程 false:当前进程不是主进程
*/
public boolean isUIProcess() {
ActivityManager am = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE));
List<ActivityManager.RunningAppProcessInfo> processInfos = am.getRunningAppProcesses();
String mainProcessName = getPackageName();
int myPid = android.os.Process.myPid();
for (ActivityManager.RunningAppProcessInfo info : processInfos) {
if (info.pid == myPid && mainProcessName.equals(info.processName)) {
return true;
}
}
return false;
}
2.判断服务是否存在
/**
* 判断service是否已经运行
* 必须判断uid,因为可能有重名的Service,所以要找自己程序的Service,不同进程只要是同一个程序就是同一个uid,个人理解android系统中一个程序就是一个用户
* 用pid替换uid进行判断强烈不建议,因为如果是远程Service的话,主进程的pid和远程Service的pid不是一个值,在主进程调用该方法会导致Service即使已经运行也会认为没有运行
* 如果Service和主进程是一个进程的话,用pid不会出错,但是这种方法强烈不建议,如果你后来把Service改成了远程Service,这时候判断就出错了
*
* @param className Service的全名,例如PushService.class.getName()
* @return true:Service已运行 false:Service未运行
*/
public boolean isServiceExisted(String className) {
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> serviceList = am.getRunningServices(Integer.MAX_VALUE);
int myUid = android.os.Process.myUid();
for (ActivityManager.RunningServiceInfo runningServiceInfo : serviceList) {
if (runningServiceInfo.uid == myUid && runningServiceInfo.service.getClassName().equals(className)) {
return true;
}
}
return false;
}
注意:
上面判断Service是否存在,用的uid和Service的类全名,网上我查到的资料,全部是用的pid,在Service和主进程是一个进程的时候,pid没有问题,但是如果Service是远程Service,和主进程就不是一个进程了,这时候用pid和Service的类全名进行判断就会判断错误
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# android
# 判断进程存在
# 进程是否存在
# 判断进程
# 详解android与服务端交互的两种方式
# 使用pyecharts在jupyter notebook上绘图
# Android中实现OkHttp上传文件到服务器并带进度
# Android读取服务器图片的三种方法
# android选择视频文件上传到后台服务器
# Android实现调用系统图库与相机设置头像并保存在本地及服务器
# Android判断后台服务是否开启的两种方法实例详解
# 是一个
# 是否存在
# 这时候
# 就会
# 如果你
# 也会
# 就不
# 错了
# 能有
# 要找
# 大家多多
# 改成了
# 判断是否
# 法会
# 这种方法
# 只要是
# 网上
# Context
# ACTIVITY_SERVICE
# mainProcessName
相关文章:
如何快速生成可下载的建站源码工具?
C#如何序列化对象为XML XmlSerializer用法
想学网站制作怎么学,建立一个网站要花费多少?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
如何快速辨别茅台真假?关键步骤解析
建站之星如何助力网站排名飙升?揭秘高效技巧
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
宝塔建站后网页无法访问如何解决?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
盐城做公司网站,江苏电子版退休证办理流程?
,如何利用word制作宣传手册?
建站主机选购指南:核心配置与性价比推荐解析
,在苏州找工作,上哪个网站比较好?
魔方云NAT建站如何实现端口转发?
建站之星如何快速解决建站难题?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
建站之星下载版如何获取与安装?
建站之星安装后界面空白如何解决?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
如何在橙子建站上传落地页?操作指南详解
PHP 500报错的快速解决方法
建站之星与建站宝盒如何选择最佳方案?
如何通过西部数码建站助手快速创建专业网站?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
独立制作一个网站多少钱,建立网站需要花多少钱?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
建站之星后台管理如何实现高效配置?
移民网站制作流程,怎么看加拿大移民官网?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
制作电商网页,电商供应链怎么做?
黑客如何通过漏洞一步步攻陷网站服务器?
如何在阿里云部署织梦网站?
如何快速查询域名建站关键信息?
建站主机服务器选型指南与性能优化方案解析
如何快速生成橙子建站落地页链接?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
如何在腾讯云服务器快速搭建个人网站?
html制作网站的步骤有哪些,iapp如何添加网页?
高防服务器租用如何选择配置与防御等级?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
如何在IIS中新建站点并配置端口与IP地址?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
网站制作企业,网站的banner和导航栏是指什么?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
,网站推广常用方法?
建站主机功能解析:服务器选择与快速搭建指南
*请认真填写需求信息,我们会在24小时内与您取得联系。