android app程序运行状态的判定

简介:

怎么知道手机的一个程序是否在运行,又或是在不在前台运行呢?下面一个方法就可以判定了。

/**
 * 返回app运行状态
 * 1:程序在前台运行
 * 2:程序在后台运行
 * 3:程序未启动
 * 注意:需要配置权限<uses-permission android:name="android.permission.GET_TASKS" />
 */
public int getAppSatus(Context context, String pageName) {

    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(20);

    //判断程序是否在栈顶
    if (list.get(0).topActivity.getPackageName().equals(pageName)) {
        return 1;
    } else {
        //判断程序是否在栈里
        for (ActivityManager.RunningTaskInfo info : list) {
            if (info.topActivity.getPackageName().equals(pageName)) {
                return 2;
            }
        }
        return 3;//栈里找不到,返回3
    }
}

还可以通过下面代码判断程序的某个页面是否在运行

info.topActivity.getClassName().equals(activityName)

有时还需要判断是否锁屏

KeyguardManager km = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
if (km.inKeyguardRestrictedInputMode()) {//如果锁屏就解锁
    KeyguardManager.KeyguardLock keyguardLock = km.newKeyguardLock("");
    keyguardLock.disableKeyguard();
}


相关文章
|
4月前
|
XML 物联网 API
Android Ble蓝牙App(五)数据操作
Android Ble蓝牙App(五)数据操作
|
2月前
|
安全 开发工具 数据安全/隐私保护
如何将应用程序发布到 App Store
如何将应用程序发布到 App Store
|
3月前
|
Android开发 开发者 iOS开发
APP开发后如何上架,上架Android应用市场前要准备什么
移动应用程序(APP)的开发已经成为现代企业和开发者的常见实践。然而,开发一个成功的APP只是第一步,将其上架到应用商店让用户下载和使用是实现其潜力的关键一步。
|
3月前
|
安全 开发工具 数据安全/隐私保护
如何将应用程序发布到 App Store
如何将应用程序发布到 App Store
|
1月前
|
设计模式 测试技术 数据库
基于Android的食堂点餐APP的设计与实现(论文+源码)_kaic
基于Android的食堂点餐APP的设计与实现(论文+源码)_kaic
|
2月前
|
安全 Java 数据挖掘
当 App 有了系统权限,真的可以为所欲为? Android Performance Systrace
当 App 有了系统权限,真的可以为所欲为? Android Performance Systrace 转载自: https://androidperformance.com/2023/05/14/bad-android-app-with-system-permissions/#/0-Dex-%E6%96%87%E4%BB%B6%E4%BF%A1%E6%81%AF
30 0
|
2月前
|
Android开发 iOS开发 开发者
点击APP的应用程序图标后,发生了什么
点击APP的应用程序图标后,发生了什么
|
3月前
|
Android开发
闲暇时间收集和整理的Android的一些常用的App
闲暇时间收集和整理的Android的一些常用的App
14 0
|
3月前
|
PHP
HYBBS 表白墙网站PHP程序源码 可封装成APP
HYBBS 表白墙网站PHP程序源码 可封装成APP
32 1