转出链接:http://blog.csdn.net/zhangfei_jiayou/article/details/21240089
判断Activity是否在运行(可见):
- public static boolean isActivityRunning(Context mContext,String activityClassName){
- ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
- List<RunningTaskInfo> info = activityManager.getRunningTasks(1);
- if(info != null && info.size() > 0){
- ComponentName component = info.get(0).topActivity;
- if(<span style="font-family: Arial, Helvetica, sans-serif;">activityClassName</span>.equals(component.getClassName())){
- return true;
- }
- }
- return false;
- }
判断Service是否在运行?
- public static boolean isServiceRunning(Context mContext,String className) {
- boolean isRunning = false;
- ActivityManager activityManager = (ActivityManager)
- mContext.getSystemService(Context.ACTIVITY_SERVICE);
- List<ActivityManager.RunningServiceInfo> serviceList = activityManager.getRunningServices(30);
- if (!(serviceList.size()>0)) {
- return false;
- }
- for (int i=0; i<serviceList.size(); i++) {
- if (serviceList.get(i).service.getClassName().equals(className) == true) {
- isRunning = true;
- break;
- }
- }
- return isRunning;
- }
第一种方法:
- public static boolean isAppInForeground(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())) {
- return appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
- }
- }
- return false;
- }
- 第二种方法:
- // need permission: <uses-permission android:name="android.permission.GET_TASKS" />
- public static boolean isAppInForeground2(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;
- }
-