Android判断程序是前台还是后台
2015-09-09 21:06
441 查看
/** * 程序是否在前台运行 * * @return */ public boolean isAppOnForeground(){ // Returns a list of application processes that are running on the // device List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses(); if(appProcesses ==null) returnfalse; for(RunningAppProcessInfo appProcess : appProcesses){ // The name of the process that this object is associated with. if(appProcess.processName.equals(packageName) /** * 可以根据importance的不同来判断前台或后台 RunningAppProcessInfo * 里面的常量IMOPORTANCE就是上面所说的前台后台 * ,其实IMOPORTANCE是表示这个app进程的重要性,因为系统回收时候,会 * public static final int IMPORTANCE_EMPTY = 500//空进程 * public static final intIMPORTANCE_FOREGROUND = 100//在屏幕最前端、可获取到焦点 * 可理解为Activity生命周期的OnResume(); * public static final int IMPORTANCE_SERVICE = 300//在服务中 * public static final int IMPORTANCE_VISIBLE = 200//在屏幕前端、获取不到焦点可理解为 * Activity生命周期的OnStart() */ && appProcess.importance ==RunningAppProcessInfo.IMPORTANCE_FOREGROUND){ return true; } } return false; } 我的方法是放在BaseActivity,在onStart和onStop里面分别再判断一次。根据返回值来判断是前台还是后台。
相关文章推荐
- Android多媒体——播放音频
- android AsyncTask详解
- Android四大组件---Service
- Android之VideoView播放视频
- android studio命令大全
- Android开发:在onTouchEvent中处理任意时间的长按事件
- Android视频播放手动切换和自动切换横竖屏冲突问题
- android待机添加电量小部件,点击位置信息图标,模式切换需要改为四种
- Android之SharedPreferences详解
- android学习笔记(20)数据流操作/文本的保存与查看
- Android 学习第6课,循环功能
- Android开发之_Menu_菜单的使用
- Android动态换肤开源库Colorful发布
- Android中的多线程
- Android Fragment 真正解析(上)
- Android用Gson解析JSON字符串
- Android用Gson解析JSON字符串
- Android多线程、Handler和AsyncTask的用法
- Android之多媒体MediaPlayer(一个简单的音乐播放器)
- Android新闻阅读器(数据抓取)