开发者社区> 一叶飘舟> 正文

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();
}


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android Compose——一个简单的Bilibili APP
此Demo采用Android Compose声明式UI编写而成,主体采用MVVM设计框架,Demo涉及到的主要技术包括:Flow、Coroutines、Retrofit、Okhttp、Hilt以及适配了深色模式等;主要数据来源于Bilibili API。
80 0
Android窗口化app位移
Android窗口化app位移
36 0
Android APP的构建过程
Android APP的构建过程
71 0
Android Compose——一个简单的新闻APP
此Demo是参考Google Github其中一个Demo而完成,涉及的内容并不复杂,主要是为了熟悉Compose编码习惯,其次参考官方的代码,可以有利于培养编程思维,仅此而已
114 0
Android——一个简单的音乐APP(二)
第二版基于第一版新增了以下功能: 1. 音乐下载 2. 音乐离线播放 3. mLog视频播放 4. 个人信息 5. 音乐信息 6. 删除本地音乐
59 0
Android——一个简单的音乐APP
Github上有位牛人将网易云音乐的接口进行部署和总结,然后我将它的仓库部署到我的云服务器上,因为他的是需要翻墙的,此项目所有接口信息均与网易云音乐关联。 由于此项目用于熟悉kotlin语言,所以绝大部分代码均使用kotlin编写; 目前EasyMusic为第一版,功能上还有欠缺,但主流程已经基本完成;
54 0
Android Jetpack Compose——一个简单的笔记APP
此项目功能较为简单,基本就是使用Room数据库实现CRUD,但是此项目实现了一个干净的架构,项目使用MVVM架构进行设计,每一个模块的职责划分清晰,功能明确,没有冗余的代码。其中涉及了Hilt依赖注入,对于数据库的的操作,使用接口实现类进行获取,然后将实现类的CRUD操作封装在一个数据类中,最后通过Hilt自动注入依赖,供外部调用。
76 0
Android Studio进行APP设计调用百度地图API接口隐藏百度地图的logo方法
Android Studio进行APP设计调用百度地图API接口隐藏百度地图的logo方法
86 0
Android Studio进行APP设计开发之矢量图及XML文件转换
Android Studio进行APP设计开发之矢量图及XML文件转换
226 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Android组件化实现
立即下载
蚂蚁聚宝Android秒级编译—— Freeline
立即下载
Android插件化:从入门到放弃
立即下载