首页
学习
活动
专区
圈层
工具
发布

Android 必知必会 - 根据包名判断 App 运行状态

如果移动端访问不佳,请访问: 掘金版 Github 版 获取指定包名的 APP 是否还在后台运行,判断 APP 是否存活。...背景 可以根据 App 是否有 Service 分两类情况处理: 没有 Service 有 Service 对于没有 Service 的 App,程序一旦切换到后台,可能很快就被回收了,这里使用 ActivityManager.getRunningTasks...对于有 Service 的 App,大多会有多个 Service ,且有可能都是 :remote 类型的,这样在判断上需要进行一定的处理,这里根据 App 的 uid 来判断,避免在一些特殊的情况下判断存活不准确的问题...注意: App 的 uid 对于系统内置 App 而言不是唯一的,Android 内置的应用会有共用 uid 的情况。如果你是开发系统内置应用或者类似的东西,务必要自行进行特殊方式检查。...实现 下面是几个工具类,在正式使用的时候需要配合使用,才能覆盖全部情况: /** * 方法描述:判断某一应用是否正在运行 * Created by cafeting on 2017

2.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于Android中App的停止状态

    从Android 3.1(HoneyComb) 也就是API 12开始,Android引入了一套新的启动控制,这就是程序的停止状态.那让我们看一下Google对于程序的停止状态的描述....什么是程序的停止状态 Starting from Android 3.1, the system’s package manager keeps track of applications that are...从Android 3.1开始,系统的包管理器开始跟踪处理停止状态的程序.并且提供了方法来控制从后台进程或者其他程序对它们的启动....为什么Android要引入这一状态 Note that the system adds FLAG_EXCLUDE_STOPPED_PACKAGES to all broadcast intents....提问:系统的程序刚安装会处于停止状态么? 回答:系统的程序通常会存放在 /system/app目录下,在一开始安装之后不会处于停止状态.

    2.4K10

    隐藏Android系统Root状态?这个APP可以帮你做到

    近期,著名Android开发者Chainfire发布了一款名为“Suhide”的APP,这款新型APP允许用户针对特定的应用程序来隐藏Android设备的Root状态。...Android设备在经过root之后,将会给你带来很大的方便。因为root权限不仅能够让用户访问并使用更加丰富的APP资源,而且还可以允许用户访问Android系统的底层文件。...Android设备在root之后的最大一个缺点就是用户将无法访问或使用某些特定类型的APP,包括银行类APP、支付类APP、以及企业安全类APP等。...这款由Chainfire设计并开发的APP可以允许用户对指定的应用程序隐藏设备的root状态。...结束语 然而,这款APP可能并不会存活很长时间。因为谷歌公司的安全专家们已经知道了Suhide的存在,而这种允许用户隐藏设备root状态的APP肯定是谷歌公司要予以打击的。

    12K100

    iOS 判断监听网络状态

    startNotifier() } 判断网络状态 self.reach = ZJReachability.forInternetConnection() if self.reach!....判断网络状态的时候才自定义域名 self.reach = ZJReachability.init(hostName: "www.baidu.com") 另外上面监听变化的事件,在初始化后是不会自动调用...,之后网络状态变化才会调用 RealReachability的用法 监听网络状态(Notification形式) var reach2:RealReachability?...(Block形式) 它的Block形式 我在测试时返回的状态不正确 老是显示网络不可用 就不推荐使用了 判断网络状态 因为这个组件的原理是ping服务器。...RealReachability效率低 能判断连着Wifi却没有网的状况 但是我还是选择Reachability 因为 使用的人多 RealReachability在网络经常丢包的情况下经常判断有误

    3.4K20

    Android 点击通知栏消息打开activity,并判断app是否运行

    android的通知栏消息点击事件如果是打开一个activity时,我们要考虑两种情况: 应用正在前台运行。 应用已退出。...对于第二种情况,我参照了很多app的做法,现总结为以下两种: 点击通知栏消息打开activity按下返回键后判断app是否启动,如果没有启动就要启动app; 点击通知栏消息时判断app是否正在前台运行,...需要用到几个方法:获取应用的运行状态,判断应用进程是否在运行,判断某个activity是否存在任务栈里面。 判断某个服务是否正在运行,这个不重要,可能其它地方用到就先贴出来了。.../** * 返回app运行状态 * * @param context * 一个context * @param packageName *...activity是否在任务栈里面,app启动后会有一个首页,该首页只有当app退出时才会被销毁,因此可用判断MainActivity是否在任务栈里面来判断应用是否已经启动。

    4.1K10

    7.5 通过API判断进程状态

    进程状态的判断包括验证进程是否存在,实现方法是通过枚举系统内的所有进程信息,并将该进程名通过CharLowerBuff转换为小写,当转换为小写模式后则就可以通过使用strcmp函数对比,如果发现继承存在则返回该进程的...CreateMutex 函数会返回一个内核对象句柄,用于在之后对该互斥体进行引用和操作,通过使用互斥体可以很容易的实现对进程运行状态的判断。...#include #include // 判断是否重复运行 BOOL IsAlreadyRun() { HANDLE hMutex = NULL;...,通常在Windows系统下进程位数的有多种方法实现,第一种方式GetNativeSystemInfo调用该函数并判断函数内的特定成员,即可得到当前系统是否为64位,当然通过使用Is64BitPorcess...函数也可实现对特定进程的判断,此方式实现原理是通过调用IsWow64Process函数实现; #include #include #include <tlhelp32

    38820

    7.5 通过API判断进程状态

    进程状态的判断包括验证进程是否存在,实现方法是通过枚举系统内的所有进程信息,并将该进程名通过CharLowerBuff转换为小写,当转换为小写模式后则就可以通过使用strcmp函数对比,如果发现继承存在则返回该进程的...CreateMutex 函数会返回一个内核对象句柄,用于在之后对该互斥体进行引用和操作,通过使用互斥体可以很容易的实现对进程运行状态的判断。...#include #include // 判断是否重复运行BOOL IsAlreadyRun(){ HANDLE hMutex = NULL; hMutex...,通常在Windows系统下进程位数的有多种方法实现,第一种方式GetNativeSystemInfo调用该函数并判断函数内的特定成员,即可得到当前系统是否为64位,当然通过使用Is64BitPorcess...函数也可实现对特定进程的判断,此方式实现原理是通过调用IsWow64Process函数实现;#include #include #include <tlhelp32

    49150

    Android App瘦身新姿势——Android App Bundle

    由于博主长期从事海外App的开发,所以心系谷歌爸爸的动向呀,最近谷歌爸爸推出了一个Android App Bundle的东西,据说可以压缩包体,当然这仅限于上传Google Play的应用,国内市场不支持...概述 Android App Bundle是Google最新推出的Apk动态打包,动态组件化的技术,与Instant App不同,AAB是借助Split Apk完成动态加载,使用AAB动态下发方式,可以大幅度减少应用体积...想了解更多关于split apks的内容,请关注这里: https://developer.android.com/studio/build/configure-apk-splits?...authuser=2 如何使用App Bundle 1.将你的Android Studio升级为3.2及其以上版本 2.添加对Dynamic Delivery的支持 其实就是一些基础apk需要东西...,比如签名,MAIN入口等,详细请阅读: https://developer.android.google.cn/studio/projects/dynamic-delivery 3.构建App Bundle

    1.7K10
    领券