Android 判断应用处于前后台
2016-01-21 14:05
525 查看
1、通过RunningTaskInfo类判断(需要额外权限):
代码如下:
/**
*判断当前应用程序处于前台还是后台
*/
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类判断(不需要额外权限):
代码如下:
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;
}
代码如下:
/**
*判断当前应用程序处于前台还是后台
*/
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类判断(不需要额外权限):
代码如下:
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;
}
相关文章推荐
- 为Android 5.0设计Material风格的应用程序
- android中Activity的启动方法之startActivityForResult 参数解释
- Android 自定义控件入门篇之自定义验证码
- Unable to add window -- token android.os.BinderProxy@164db98f is not valid解决办法f
- Android Gson解析
- Android Studio导入第三方类库的方法
- android从服务器获取apk安装
- EditText禁止输入Emoji表情的处理
- 新手必备的常用 Android 代码片段整理(1)
- Android Audio Architecture
- Android 三:手机adb 命令解锁
- android---listView分割线的显示和隐藏
- Android 自定义的颜色滑动转换ViewPager指示器 ColorTransformIndicator
- Fun with Android Shaders and Filters
- Android Accessibility(辅助功能) 学习
- Android游戏之平台接入的一点记录
- Android客户端中权限的控制
- 【Android】在Android虚拟机中安装apk过程及注意事项
- Android进阶笔记11:ListView篇之ListView显示多种类型的条目(item)
- Android内存管理与内存泄漏的理解