判断android应用是否在运行等方式

/***
     * 判断应用当前是否前台运行
     *
     * @return
     */
    public static boolean isTopRun(Context context) {
        Boolean isTopRun = false;
        try {
            /* 判断当前程序是不在前台显示 */
            ActivityManager activityManager = (ActivityManager) context
                    .getSystemService(Context.ACTIVITY_SERVICE);
            List<RunningTaskInfo> tasksInfo = activityManager
                    .getRunningTasks(1);
            if (tasksInfo.size() > 0) {
                String packageName = tasksInfo.get(0).topActivity
                        .getPackageName();
                if (!TextUtils.isEmpty(packageName)
                        && packageName.startsWith(getAppPackageName())) {
                    isTopRun = true;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return isTopRun;
    }
/***
     * 判断应用是否在运行
     *
     * @return
     */
    public static boolean isAppRunning(Context context){
        boolean isAppRunning = false;
        try {
            ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
            List<RunningTaskInfo> list = activityManager.getRunningTasks(100);

            String pageName = "com.example.packagename";
            pageName = getAppPackageName();
            for (RunningTaskInfo info : list) {
                if (info.topActivity.getPackageName().equals(pageName) || info.baseActivity.getPackageName().equals(pageName)) {
                isAppRunning = true;
                Log.i("SystemUtils",info.topActivity.getPackageName() + " info.baseActivity.getPackageName()="+info.baseActivity.getPackageName());
                break;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return isAppRunning;
    }
/***
     * 判断应用是否在运行
     *
     * @return
     */
    public static boolean isAppRunning(Context context){
        boolean isAppRunning = false;
        try {
            ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
            List<RunningTaskInfo> list = activityManager.getRunningTasks(100);

            String pageName = "com.example.packagename";
            pageName = getAppPackageName();
            for (RunningTaskInfo info : list) {
                if (info.topActivity.getPackageName().equals(pageName) || info.baseActivity.getPackageName().equals(pageName)) {
                isAppRunning = true;
                Log.i("SystemUtils",info.topActivity.getPackageName() + " info.baseActivity.getPackageName()="+info.baseActivity.getPackageName());
                break;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return isAppRunning;
    }
时间: 2024-08-13 01:06:24

判断android应用是否在运行等方式的相关文章

Android判断App是否在前台运行(转)

原文地址: http://blog.csdn.net/zuolongsnail/article/details/8168689 Android开发中,有时候需要判断App是否在前台运行. 代码实现如下: [java] view plaincopy private boolean isRunningForeground (Context context) { ActivityManager am = (ActivityManager)context.getSystemService(Context

Android 如何判断指定服务是否在运行中 &ldquo;Service&rdquo;

如何判断一个服务是否正在运行中: /** * 判断某个服务是否正在运行的方法 * * @param mContext * @param serviceName 是包名+服务的类名 * @return true代表正在运行,false代表服务没有正在运行 */ public static boolean isServiceWork(Context mContext, String serviceName) { boolean isWork = false; ActivityManager myAM

Android之判断某个服务是否正在运行的方法

/** * 判断某个服务是否正在运行的方法 * * @param mContext * @param serviceName * 是包名+服务的类名(例如:net.loonggg.testbackstage.TestService) * @return true代表正在运行,false代表服务没有正在运行 */ public boolean isServiceWork(Context mContext, String serviceName) { boolean isWork = false;

判断App是否在后台运行

在一些场景中,经常会需要判断App是否在后台运行,比如是否显示解锁界面,收到新消息是否显示Notification等.需求可能是多样化的,但所依仗的原理是相通的,今天Stay打算说说这些需求的最优解. 当然,Stay肯定不会说去for loop判断当前runningProcess或者runningTasks.比如: 这样 或者这样 这种方法调用起来感觉就像是在用Windows系统里的任务管理器,真是让人蛋疼.我们暂且不去计较性能问题,就说为啥Android连个像样的API都不给我,着实让人郁闷.

判断Android的WIFI与GPS状态,并引导用户前去开启GPS与WIFI设置

需要配置权限 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 判断Android的WIFI与GPS状态 private void checkWifiAndGpsStatus() { boolean res

Android M 新的运行时权限开发者需要知道的一切

本文来自微凉一季的博客http://jijiaxin89.com/2015/08/30/Android-s-Runtime-Permission/ 更多文章点击跳转微凉一季 tags: 翻译,这是一篇译文. android M 的名字官方刚发布不久,最终正式版即将来临! android在不断发展,最近的更新 M 非常不同,一些主要的变化例如运行时权限将有颠覆性影响.惊讶的是android社区鲜有谈论这事儿,尽管这事很重要或许在不远的将来会引发很严重的问题. 这是今天我写这篇博客的原因.这里有一切

Android技术16:编写Android中直接可运行的二进制文件

我们都知道Android中所有应用程序都运行在Android的Dalvik虚拟机上,一般程序不直接与操作系统打交道,即便调用底层的方法也通过JNI技术.不过我们可以直接使用C语言编写二进制文件,直接在底层运行.下面演示其步骤. 1.安装下载编译器和链接器软件.Sourcery G++ Lite Edition for ARM. arm-none-linux-gnueabi-gcc.exe是编译命令 bin/arm-none-linux-gnueabi-ld.exe是链接命令 2.编写C代码 为了

Android M新的运行时权限开发者需要知道的一切

android M 的名字官方刚发布不久,最终正式版即将来临!android在不断发展,最近的更新 M 非常不同,一些主要的变化例如运行时权限将有颠覆性影响.惊讶的是android社区鲜有谈论这事儿,尽管这事很重要或许在不远的将来会引发很严重的问 题.这是今天我写这篇博客的原因.这里有一切关于android运行时权限你需要知道的,包括如何在代码中实现.现在亡羊补牢还不晚. 作者:微凉一季来源:简书翻译|2015-08-31 09:41 分享 翻译的国外一篇文章. android M 的名字官方刚

android的编译和运行过程深入分析

android的编译和运行过程深入分析 作者: 字体:[增加 减小] 类型:转载 首先来看一下使用Java语言编写的Android应用程序从源码到安装包的整个过程,此过程对了解android的编译和运行过程有很大的帮助 首先来看一下使用Java语言编写的Android应用程序从源码到安装包的整个过程,示意图如下,其中包含编译.链接和签名等: (1)使用aapt工具生成R.java文件 可以先通过搭建好的Eclipse开发环境创建一个未编译的Android工程,记的一定要将Eclipse中Proj