Android 判断程序在手机中是否是活动状态或者正在运行状态
发布时间:2020-05-24 21:09:21 所属栏目:Java 来源:互联网
导读:Android 判断程序在手机中是否是活动状态或者正在运行状态
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 项目需求上碰到个这样的问题,在Service中需要判断当前的程序是否是活动状态,换句话说也就是说后台跑的服务中有业务需求检测当前程序是否是该服务的程序 这样好让点击推送通知时跳转到不同的页面进行不同的操作。下面就粘贴出我封装了一下的方法和大家共享。 /**
*
* @Description : 这个包名的程序是否在运行
* @Method_Name : isRunningApp
* @param context 上下文
* @param packageName 判断程序的包名
* @return 必须加载的权限
* <uses-permission android:name="android.permission.GET_TASKS" />
* @return : boolean
* @Creation Date : 2014-10-31 下午1:14:15
* @version : v1.00
* @Author : JiaBin
* @Update Date :
* @Update Author : JiaBin
*/
public static boolean isRunningApp(Context context,String packageName) {
boolean isAppRunning = false;
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> list = am.getRunningTasks(100);
for (RunningTaskInfo info : list) {
if (info.topActivity.getPackageName().equals(packageName) && info.baseActivity.getPackageName().equals(packageName)) {
isAppRunning = true;
// find it,break
break;
}
}
return isAppRunning;
}
首先需要注意的是要想进行判断,必须加入注释中的那个权限,不然程序会抛异常的。大体的思路是这样的,获得Activity的管理器,并且通过管理器获得 当前正在运行的100个程序,然后去循环这个结果集,获取在迭代过程中每个程序的基础页面的包名和栈式最顶层的包名,用该包名和我们需要判断传入的包名参 数进行比对,如果找到了就认为该程序正在运行,如果没找到就证明该程序没在运行。 以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
