Android 判断app是否运行在后台
2015-08-07 10:31
274 查看
转载自:http://www.jb51.net/article/45084.htm
这篇文章主要介绍了Android判断当前应用程序处于前台还是后台的两种方法,有需要的朋友可以参考一下
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;
}
这篇文章主要介绍了Android判断当前应用程序处于前台还是后台的两种方法,有需要的朋友可以参考一下
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;
}
相关文章推荐
- Android Otto框架浅析
- Android版本升级同时Sqlite数据库的升级及之前数据的保留
- iOS导航栏-导航栏透明
- ios学习之路
- android 初体验(0)
- Application的作用
- 打造一个全命令行的Android构建系统
- iOS 9应用开发教程之编辑界面与编写代码
- Unity Singleton 单例类(Unity3D开发之二十)
- 项目启动c3p0 APPARENT DEADLOCK!!! 错误
- Unity Singleton 单例类(Unity3D开发之二十)
- Qcom Android 等相关名称缩写及意义
- Android2.2下camera应用程序支持GPS信息写入jpeg文件
- Android的webView 实现点击超链接跳转,后退,前进 ,刷新
- Android 使用百度导航SDK 2.0小结
- 从设计到实现,一步步教你实现Android-Universal-ImageLoader-解码与显示
- WP&Win10仿微信消息框代码分享
- Android中touch和click事件的区别
- ios常见bug
- Ant自动编译打包android项目