检测当前应用的运行状态的几个方法

有些操作的前提是需要知道当前的APP的状态才能进行,比如说从通知栏跳到某个界面,如果要进入的界面已经在前端了,还要去把它删除再跳,这个时候用户会看到这个界面有明显的跳动,体验会很差。

很简单的几个方法,就可以判断出来应用的各个UI是否在前端,直接上代码。

//获取运行中的task列表
public
static ActivityManager.RunningTaskInfo getTopTask(Context context) { ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo> tasks = mActivityManager.getRunningTasks(1); if (tasks != null && !tasks.isEmpty()) { return tasks.get(0); } return null; } /** * 判断目标页面是否运行在前端 * @param topTask * @param packageName * @param activityName * @return */ public static boolean isTopActivity( ActivityManager.RunningTaskInfo topTask, String packageName, String activityName) { if (topTask != null) { ComponentName topActivity = topTask.topActivity; if (topActivity.getPackageName().equals(packageName) && topActivity.getClassName().equals(activityName)) { return true; } } return false; } /** * 判断应用当前是否运行中,包括后台运行 * @param context * @return */ public static boolean isApplicationRunning(Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo> taskList = am.getRunningTasks(Integer.MAX_VALUE); for (ActivityManager.RunningTaskInfo runningTaskInfo : taskList) { if (runningTaskInfo.topActivity.getPackageName().equals(context.getPackageName())) { return true; } } return false; }

 

转载于:https://www.cnblogs.com/lovemo1314/p/5644690.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值