判断程序或者服务是否在前台运行

1.private boolean isTopActivity(){ 
        List<RunningTaskInfo>  tasksInfo = activityManager.getRunningTasks(1); 
         if(tasksInfo.size() > 0){ 
             //应用程序位于堆栈的顶层 
             if(packageName.equals(tasksInfo.get(0).topActivity.getPackageName())){ 
                return true; 
            } 
         } 
         return false; 
     } 
2.(1)
<uses-permission android:name="android.permission.GET_TASKS"/>
(2)
public static  boolean isServiceStarted(Context context,String PackageName)
        {
            boolean isStarted =false;
            try
            {
                ActivityManager mActivityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
                int intGetTastCounter = 1000;
                List<ActivityManager.RunningServiceInfo> mRunningService =
                          mActivityManager.getRunningServices(intGetTastCounter );
                for (ActivityManager.RunningServiceInfo amService : mRunningService)
                {
                        if(0 == amService.service.getPackageName().compareTo(PackageName))
                        {               
                                isStarted = true;
                                break;
                        }
                }
            }
            catch(SecurityException e)
            {
                    e.printStackTrace();
            }           
            return isStarted;               
        }

你可能感兴趣的:(activitymanager,tasksinfo)