Android判断App是否在前台运行
版权声明:本文为博主原创文章,未经博主允许不得转载。//当前应用是否处于前台private boolean isForeground(Context context) {if (context != null) {ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);List<ActivityManager.RunningAppProcessInfo> processes = activityManager.getRunningAppProcesses();for (ActivityManager.RunningAppProcessInfo processInfo: processes) {if (processInfo.processName.equals(context.getPackageName())) {if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {return true;}}}}return false;}可以根据importance的不同来判断前台或后台 RunningAppProcessInfo 里面的常量IMOPORTANCE就是上面所说的前台后台,其实IMOPORTANCE是表示这个app进程的重要性,因为系统回收时候,会根据IMOPORTANCE来回收进程的。具体可以去看文档。。public static final int IMPORTANCE_BACKGROUND = 400//后台public static final int IMPORTANCE_EMPTY = 500//空进程public static final int IMPORTANCE_FOREGROUND = 100//在屏幕最前端、可获取到焦点 可理解为Activity生命周期的OnResume();public static final int IMPORTANCE_SERVICE = 300//在服务中public static final int IMPORTANCE_VISIBLE = 200//在屏幕前端、获取不到焦点可理解为Activity生命周期的OnStart(); 但上面的方法有的机型不支持,下面这个方法还是比较靠谱的,但需要一个权限 < uses-permission Android:name =“android.permission.GET_TASKS” />//当前应用是否处于前台private boolean isForeground(Context context) {if (context != null) {ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);ComponentName cn = am.getRunningTasks(1).get(0).topActivity;String currentPackageName = cn.getPackageName();if (!TextUtils.isEmpty(currentPackageName) && currentPackageName.equals(context.getPackageName())) {return true;}return false;}return false;}版本4.0以上,可以使用ActivityLifecycleif (Build.VERSION.SDK_INT >= 14) {lifecycle = new SimpleActivityLifecycle();registerActivityLifecycleCallbacks(lifecycle);public class SimpleActivityLifecycle implements Application.ActivityLifecycleCallbacks {private boolean isForeground = false;//应用是否处于前端 @Overridepublic void onActivityCreated(Activity activity, Bundle savedInstanceState) {}@Overridepublic void onActivityStarted(Activity activity) {}@Overridepublic void onActivityResumed(Activity activity) {isForeground = true;}@Overridepublic void onActivityPaused(Activity activity) {isForeground = false;}@Overridepublic void onActivityStopped(Activity activity) {}@Overridepublic void onActivitySaveInstanceState(Activity activity, Bundle outState) {}@Overridepublic void onActivityDestroyed(Activity activity) {}public boolean isForeground() {return isForeground;} }
转载于:https://www.cnblogs.com/Free-Thinker/p/6698549.html
Android判断App是否在前台运行相关推荐
- Android 判断app是否在前台还是在后台运行
Android 判断app是否在前台还是在后台运行,直接看代码,可直接使用. [java] view plain copy public static boolean isBackground(Co ...
- android5.0以后获取应用运行状态,Android判断App前台运行还是后台运行(运行状态)...
本文通过图文并茂的方式给大家介绍android判断app状态的相关内容,具体详情如下所示: 要了解这块,首先需要明白一些概念,app,process,task 1.process就是进程,是linux ...
- Android怎样判断APP是64位运行,还是32位运行?
标签:安卓怎样判断APP是64位运行,还是32位运行? 有下面两个方法,都可判断. 方法一: 参考: https://blog.csdn.net/u010194271/article/details/ ...
- Android 判断App运行在模拟器还是真机上的最终解决方案
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接: https://blog.csdn.net/qq_39731011/article ...
- android 判断进程是否处于前台
今天,简单讲讲如何判断android 的进程是否处于前台. 1.通过RunningTaskInfo类判断(需要额外权限): /***判断当前应用程序处于前台还是后台*/public static bo ...
- 安卓判断APP是在前台还是在后台
安卓中判断APP是否在前台: 方法一:CCApplication 中判断 private boolean mIsInForeground = false; public boolean isInFor ...
- Android判断应用是否在前台或后台
Android判断应用是否在前台或后台 判断是否前台是否前端显示: /** * 判断一个程序是否显示在前端,根据测试此方法执行效率在11毫秒,无需担心此方法的执行效率 * * @param packa ...
- android 判断App进程是否存在,处在前台,后台,前后台切换,service是否运行,设置为系统app
1.判断进程是否存在 //判断是否在主进程,这个方法判断进程名或者pid都可以,如果进程名一样那pid肯定也一样 //true:当前进程是主进程 false:当前进程不是主进程 public bool ...
- Android判断App前台运行还是后台运行(运行状态)
原文:http://p.codekk.com/detail/Android/wenmingvs/AndroidProcess AndroidProcess 项目地址:https://github.co ...
- android判断app前后台状态
项目中需要在应用从后台切换到前台时做操作,自己实现了功能,但对这块的机制不太了解,So.找了相关的资料来学习总结下. !!! 部分资料来源https://github.com/wenmingvs/An ...
最新文章
- CUDA Samples: Streams' usage
- Android之热修复框架Nuwa
- C++中list的使用方法及常用list操作总结
- 阅读准备-构建redis容器
- Android中使用SeekBar拖动条实现改变图片透明度
- hikari数据源配置类_Spring中的“多数据源”之详解
- 数据结构---判断一棵树是否是二叉搜索树
- WebView 和JS 之间交互
- linux内核ddr初始化,X-007-UBOOT-DDR的初始化(Bubblegum-96平台)
- 【华为云技术分享】MySQL Seconds_Behind_Master简要分析
- 基于JAVA+SpringMVC+Mybatis+MYSQL的高校社团管理系统
- 实战HTML:登陆界面的实现
- Python简明教程之后应该学什么?
- 爱德泰科普 | 了解单模光纤跳线和多模光纤跳线,看着一篇就够了
- 站在巨人肩膀上的牛顿:Kubernetes和SAP Kyma
- 手把手教你用jQuery Mobile做相册
- 学习笔记(12):A110测试-测试课程申请1888
- Unity 3D网页游戏产品展示
- 【Linux】压缩与解压zip
- 海航控股公布重整计划 海航“航”向何方?
热门文章
- 协同过滤推荐算法的用户向量相似度计算
- 一些有趣的 CSS 魔法和布局(下)(结尾有岗位内推哦~)
- IDEA 中git使用非默认ssh客户端进行登录
- (原創) 無論設計軟體硬體,拿到spec後,第一件事情就是model (OO)
- 对比了6家交易所的下币规则,我们发现……
- GitLab Docker 前端开发工具链
- IOCP的Demo及说明
- [安卓学习]AndroidManifest.xml文件内容详解
- [转载] 七龙珠第一部——第061话 塔上的卡林神
- Redis 6.0 源码阅读笔记(7) -- ZSet 数据类型源码分析