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();
}
时间: 2024-10-25 22:33:58

android app程序运行状态的判定的相关文章

通过Html网页调用本地安卓(android)app程序代码_Android

一.通过html页面打开Android本地的app 1.首先在编写一个简单的html页面 复制代码 代码如下: <html>     <head>         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">         <title>Insert title here</title>     </head&

《Android App开发入门:使用Android Studio 2.X开发环境》——2-1 Android App 的主角:Activity

2-1 Android App 的主角:Activity Android App 程序主要由 4 部分组成. (1)Activity(活动):主要负责屏幕显示画面,并处理与用户的互动.每个 Android App 至少会有一个 Activity,在程序启动时显示主界面供用户操作. (2)Service(后台服务):负责在后台持续运行的工作,比如让音乐播放程序持续播放,不会因为用户切换到其他程序而中断:或者让用户持续操作手机,但可以在后台下载文件等. (3)Content Provider(内容提

app黑屏-android 程序进入后台以后,过一段时间再点进去报错,黑屏。

问题描述 android 程序进入后台以后,过一段时间再点进去报错,黑屏. 下面是写的异常日志抓取的报错代码: android.util.SuperNotCalledException: Activity {com.st.sliding/com.st.sliding.MainActivity} did not call through to super.onCreate() at android.app.ActivityThread.performLaunchActivity(ActivityT

android app crash点forceclose后程序长时间无响应

问题描述 android app crash点forceclose后程序长时间无响应 如题,点home键,再点击程序图标启动,依然这样,只有从最近任务中杀死才能重新启动.不知道大伙有没有遇到过这个问题.

实时获取股票数据的android app应用程序源码分享_Android

最近学习Android应用开发,不知道写一个什么样的程序来练练手,正好最近股票很火,就一个App来实时获取股票数据,取名为Mystock.使用开发工具Android Studio,需要从Android官网下载,下载地址:http://developer.android.com/sdk/index.html.不幸的是Android是Google公司的,任何和Google公司相关的在国内都无法直接访问,只能通过VPN访问. 下图为Android Studio打开一个工程的截图:   下面按步介绍My

《Android App开发入门:使用Android Studio 2.X开发环境》——2-5 开始动手编写程序

2-5 开始动手编写程序 在这一节中,本书将会带领大家制作第一个互动 Android App.这个范例执行后会显示"Hello world!"字符串,并且可在用户单击屏幕上的按钮时自动放大文字. 我们会遵循设计 Android App 的流程,先将视觉外观的部分设计好,再加入控制互动行为的程序逻辑.通过实际演练这个范例可以对 Android App 的设计有更清楚的认识. 创建项目后,会自动打开项目并以图形布局编辑器打开布局文件. 在新建的 Android项目中,默认的布局含有两个组件

《Android App开发入门:使用Android Studio 2.X开发环境》——2-8 修改项目的程序包名称和应用程序 ID

2-8 修改项目的程序包名称和应用程序 ID 如果用户将第 2-5 节的 Ch02_Button 范例部署到手机上执行,然后又把第 2-6 节的范例 Ch02_EditText 部署到手机上执行,会发现手机的应用程序列表中只有 Ch02_ExitText,却没有 Ch02_Button. 在第1章曾经提过,程序包名称是 Android App 在手机上的身份证 ID,而 Ch02_ExitText 项目是从 Ch02_Button 复制而来的,它们的程序包名称相同(?ag.com.ch02_bu

《Android App开发入门:使用Android Studio 2.X开发环境》——2-7 使用 USB 线将程序部署到手机上执行

2-7 使用 USB 线将程序部署到手机上执行 先前都是在仿真器上测试程序执行结果,若想将写好的程序直接放在 Android 手机上执行,则可用手机附带的 USB 线把手机与计算机相连,再从 ADT 中直接将程序上传到手机中执行.若要使用 USB 连接的方式,则必须打开手机的调试功能. 进入手机的设置界面,按照下面的步骤设置,启用手机的调试功能(不同品牌 / 型号的手机,设置项的名称.位置可能略有不同). 通过 USB 将 Android App 传送到手机安装并执行 要用手机连接 USB,还要

《Android App开发入门:使用Android Studio 2.X开发环境》——第 2章 Android 程序设计基础讲座

第 2章 Android 程序设计基础讲座 2-1 Android App 的主角:Activity2-2 Android 程序的设计流程2-3 认识 Activity 的基本程序逻辑2-4 组件的布局与属性设置2-5 开始动手编写程序2-6 输入字段 EditText 组件2-7 使用 USB 线将程序部署到手机上执行2-8 修改项目的程序包名称和应用程序 ID 本章开始会使用面向对象的 Java 程序设计语言,对Java 不熟悉的读者可适当参考附录 A. 本章将说明如何在项目中加入各种组件(