iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android中怎么根据包名判断App运行状态
  • 804
分享到

Android中怎么根据包名判断App运行状态

android 2023-05-30 17:05:16 804人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关Android中怎么根据包名判断App运行状态,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。背景可以根据 App 是否有 Service 分两类情况处理:① 没有

这篇文章将为大家详细讲解有关Android中怎么根据包名判断App运行状态,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

背景

可以根据 App 是否有 Service 分两类情况处理:

① 没有 Service

② 有 Service

对于没有 Service 的 App,程序一旦切换到后台,可能很快就被回收了,这里使用 ActivityManager.getRunningTasks(int maxNum) 方法来获取当前正在运行的任务,注意:此方法并不被系统推荐,且是一个 Deprecated 的方法。

对于有 Service 的 App,大多会有多个 Service ,且有可能都是 :remote 类型的,这样在判断上需要进行一定的处理,这里根据 App 的 uid 来判断,避免在一些特殊的情况下判断存活不准确的问题。我们使用 ActivityManager.getRunningServices(int maxNum) 方法获取当前运行中的 Service 列表。

注意:App 的 uid 对于系统内置 App 而言不是唯一的,Android 内置的应用会有共用 uid 的情况。如果你是开发系统内置应用或者类似的东西,务必要自行进行特殊方式检查。

实现

下面是几个工具类,在正式使用的时候需要配合使用,才能覆盖全部情况:

public static boolean isAppRunning(Context context, String packageName) {    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);    List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(100);    if (list.size() <= 0) {      return false;    }    for (ActivityManager.RunningTaskInfo info : list) {      if (info.baseActivity.getPackageName().equals(packageName)) {        return true;      }    }    return false;}//获取已安装应用的 uid,-1 表示未安装此应用或程序异常public static int getPackageUid(Context context, String packageName) {    try {      ApplicationInfo applicationInfo = context.getPackageManager().getApplicationInfo(packageName, 0);      if (applicationInfo != null) {        Logger.d(applicationInfo.uid);        return applicationInfo.uid;      }    } catch (Exception e) {      return -1;    }    return -1;}public static boolean isProcessRunning(Context context, int uid) {    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);    List<ActivityManager.RunningServiceInfo> runningServiceInfos = am.getRunningServices(200);    if (runningServiceInfos.size() > 0) {      for (ActivityManager.RunningServiceInfo appProcess : runningServiceInfos){        if (uid == appProcess.uid) {          return true;        }      }    }    return false;}

在正式使用的时候结合两者即可:

String pName = "xxx";int uid = getPackageUid(context, pName);if(uid > 0){  boolean rstA = isAppRunning(context, pName);  boolean rstB = isProcessRunning(context, uid);  if(rstA||rstB){    //指定包名的程序正在运行中  }else{    //指定包名的程序未在运行中  }}else{  //应用未安装}

关于Android中怎么根据包名判断App运行状态就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Android中怎么根据包名判断App运行状态

本文链接: https://www.lsjlt.com/news/219964.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android中怎么根据包名判断App运行状态
    这篇文章将为大家详细讲解有关Android中怎么根据包名判断App运行状态,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。背景可以根据 App 是否有 Service 分两类情况处理:① 没有...
    99+
    2023-05-30
    android
  • Android应用中怎么判断服务是否运行
    这期内容当中小编将会给大家带来有关Android应用中怎么判断服务是否运行,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实现代码: public boolean isServiceWork(Context...
    99+
    2023-05-31
    android roi
  • android怎么判断服务是否在运行
    在Android中,可以通过以下方法判断服务是否在运行:1. 使用ActivityManager来获取正在运行的服务列表,然后遍历列...
    99+
    2023-10-19
    android
  • Android中怎么判断一个应用是否在运行
    Android中怎么判断一个应用是否在运行,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在一个应用中,或一个Service 、Receiver中有时候需要判断一个应用是否正...
    99+
    2023-05-30
    android
  • 怎么在IOS中判断当前网络状态
    怎么在IOS中判断当前网络状态?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. Reachability这是苹果的官方演示demo中使用到的方法,我们可以到苹果官方文档里下载...
    99+
    2023-06-14
  • VB.NET中怎么并发性判断线程状态
    本篇文章为大家展示了VB.NET中怎么并发性判断线程状态,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。当用户在写出多线程程序的时候,可能***有挑战性的就是独立的线程和程序的其他的部分有并发性。例如...
    99+
    2023-06-17
  • android开发中怎么动态修改app运行的语言
    这篇文章给大家介绍android开发中怎么动态修改app运行的语言,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。android开发中有时候碰到切换语言的需求,这时候需要通过代码动态改变当前运行语言。package&nb...
    99+
    2023-05-31
    android pp roi
  • linux怎么查看数据库运行状态
    在Linux系统中,可以使用以下命令来查看数据库的运行状态:1. MySQL/MariaDB:- 查看MySQL服务是否正在运行:`...
    99+
    2023-08-29
    linux 数据库
  • db2怎么查看数据库运行状态
    要查看DB2数据库的运行状态,可以使用以下命令: 使用命令行窗口登录到DB2数据库: db2 在DB2控制台中,使用以下命令...
    99+
    2024-04-09
    db2
  • linux怎么查看oracle数据库的运行状态
    在Linux系统中,可以通过以下方式来查看Oracle数据库的运行状态: 使用ps命令查看数据库的进程状态: ps -ef | ...
    99+
    2024-04-09
    linux oracle
  • Android应用中是怎么判断程序是在前台运行还是在后台运行的
    本篇文章为大家展示了Android应用中是怎么判断程序是在前台运行还是在后台运行的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体方法如下:public static boolean Frontd...
    99+
    2023-05-31
    android roi
  • vue怎么使用sass根据环境进行样式判断区分
    这篇文章主要介绍“vue怎么使用sass根据环境进行样式判断区分”,在日常操作中,相信很多人在vue怎么使用sass根据环境进行样式判断区分问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么使用sass...
    99+
    2023-07-05
  • JavaScript中怎么判断前端应用运行环境
    JavaScript中怎么判断前端应用运行环境,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们部署在某些云平台或者Web服务器上的前端应用,既可以用PC端浏览器访问,也可以用...
    99+
    2023-06-05
  • Android应用中怎么对状态栏进行设置
    Android应用中怎么对状态栏进行设置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android 状态栏的设置适配问题详解最近看了很多关于状态栏的问题的处理,总结出处理状态...
    99+
    2023-05-31
    android roi
  • Shell中怎么监视指定进程的运行状态
    本篇文章给大家分享的是有关Shell中怎么监视指定进程的运行状态,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。现用shell脚本实现指定进程的运行状态。直接上代码。#!/bin...
    99+
    2023-06-09
  • Android中状态栏与标题栏怎么进行隐藏
    今天就跟大家聊聊有关Android中状态栏与标题栏怎么进行隐藏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。方法一:public class MainActivity extends...
    99+
    2023-05-31
    android roi %d
  • 怎么在Android中利用activity与view对滑动进行判断
    这篇文章给大家介绍怎么在Android中利用activity与view对滑动进行判断,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android activity和view判断滑动//手指按下的点为(x1, y1)手指...
    99+
    2023-05-31
    android activity view
  • Android应用中怎么对网络连接状态进行监听
    这篇文章给大家介绍Android应用中怎么对网络连接状态进行监听,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。思路:网络变化时系统会发出广播。所以我们监听这个广播,利用接口回调通知activity做相应的操作就好了。。...
    99+
    2023-05-31
    android roi
  • 怎么在Linux中使用sar工具获取系统运行状态
    怎么在Linux中使用sar工具获取系统运行状态?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。sar是查看操作系统报告指标的各种工具中,最为普遍和方便的;它有两种用法;追溯过去...
    99+
    2023-06-12
  • 怎么在Android中利用广播对usb连接状态进行监听
    今天就跟大家聊聊有关怎么在Android中利用广播对usb连接状态进行监听,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。实现方法如下:package com.lgs.test.tes...
    99+
    2023-05-31
    android roi usb
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作