判断App整体处于前台还是后台
2015-11-30 12:25
176 查看
1、通过RunningTaskInfo类判断(需要额外权限):
复制代码代码如下:[java] view
plaincopy
/**
*判断当前应用程序处于前台还是后台
*/
public static boolean isApplicationBroughtToBackground(final Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
ComponentName topActivity = tasks.get(0).topActivity;
if (!topActivity.getPackageName().equals(context.getPackageName())) {
return true;
}
}
return false;
}
需要在AndroidMenitfest.xml文件中添加以下权限
复制代码代码如下:
<uses-permission android:name="android.permission.GET_TASKS" />
2、通过RunningAppProcessInfo类判断(不需要额外权限):
复制代码代码如下:[java] view
plaincopy
public static boolean isBackground(Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
for (RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.processName.equals(context.getPackageName())) {
if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
Log.i("后台", appProcess.processName);
return true;
}else{
Log.i("前台", appProcess.processName);
return false;
}
}
}
return false;
}
在处理推送的时候会用到
相关文章推荐
- 微信企业号如何置顶?
- Error:Android Packager: java.util.zip.ZipException: duplicate entry: AndroidManifest.xml
- android 事件分发
- 《ArcGIS Runtime SDK for Android开发笔记》——(8)、关于ArcGIS Android开发的未来(“Quartz”版Beta)
- xocde项目管理
- Android中Context、getApplication、getApplicationContext、this、Activity.this的区别
- iOS开发之数据存储(一)
- Android可收缩/扩展的TextView
- iOS开发--常见坑(横竖屏问题)
- 推荐一个iOS关于颜色的库-Wonderful
- Android学习指南之十四:Service详解及应用实例
- Android Bionic库
- Android去掉标题栏点菜单键程序崩溃
- iOS 将图片等比例缩放
- PS:mproving Object Detection With Deep Convolutional Networks via Bayesian Optimization..___CVPR2015
- Android的动画机制学习---Animation
- Android手机装不上软件的问题解决
- Objective-C NSData与实现NSCoding协议进行序列化和反序列化
- Android无线调试 ADBWIFI
- AndroidStudio 1.4升级到1.5后,peer not authenticated错误