Android ActivityManager 检测Service与Activity是否正在运行
2016-09-22 17:27
597 查看
检测Service是否已启动
检测应用程序员是否已开启
权限
<uses-permission android:name="android.permission.GET_TASKS"/>
代码----判断Activity是否正在运行
下面代码检测当前Activity是不是栏启动器
----------------判断App是否正在运行---------------------
public static boolean isServiceRunning(String serviceClassName){ final ActivityManager activityManager = (ActivityManager)Application.getContext().getSystemService(Context.ACTIVITY_SERVICE); final List<RunningServiceInfo> services = activityManager.getRunningServices(Integer.MAX_VALUE); for (RunningServiceInfo runningServiceInfo : services) { if (runningServiceInfo.service.getClassName().equals(serviceClassName)){ return true; } } return false; }
检测应用程序员是否已开启
权限
<uses-permission android:name="android.permission.GET_TASKS"/>
代码----判断Activity是否正在运行
ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> list = am.getRunningTasks(100); boolean isAppRunning = false; String MY_PKG_NAME = "com.cyberblue.iitag"; for (RunningTaskInfo info : list) { if (info.topActivity.getPackageName().equals(MY_PKG_NAME) || info.baseActivity.getPackageName().equals(MY_PKG_NAME)) { isAppRunning = true; Log.i(TAG,info.topActivity.getPackageName() + " info.baseActivity.getPackageName()="+info.baseActivity.getPackageName()); break; } }
/** * 检测某Activity是否在当前Task的栈顶 */ public boolean isTopActivy(String cmdName){ ActivityManager manager = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE); List<RunningTaskInfo> runningTaskInfos = manager.getRunningTasks(1); String cmpNameTemp = null; if(null != runningTaskInfos){ cmpNameTemp=(runningTaskInfos.get(0).topActivity).toString); Log.e("cmpname","cmpname:"+cmpName); } if(null == cmpNameTemp)return false; return cmpNameTemp.equals(cmdName); }
下面代码检测当前Activity是不是栏启动器
private boolean isLauncherRunnig(Context context) { boolean result = false ; List<String> names = getAllTheLauncher(); ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE) ; List<ActivityManager.RunningAppProcessInfo> appList = mActivityManager.getRunningAppProcesses() ; for (RunningAppProcessInfo running : appList) { if (running.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { for (int i = 0; i < names.size(); i++) { if (names.get(i).equals(running.processName)) { result = true ; break; } } } } return result ; }
----------------判断App是否正在运行---------------------
/** * 判断app是否正在运行 * @param ctx * @param packageName * @return */ public boolean appIsRunning(Context ctx,String packageName) { ActivityManager am = (ActivityManager) ctx.getSystemService(ACTIVITY_SERVICE); List<RunningAppProcessInfo> runningAppProcesses = am.getRunningAppProcesses(); if(runningAppProcesses!=null) { for (RunningAppProcessInfo runningAppProcessInfo : runningAppProcesses) { if(runningAppProcessInfo.processName.startsWith(packageName)) { return true; } } } return false; } /** * app 是否在后台运行 * @param ctx * @param packageName * @return */ public boolean appIsBackgroundRunning(Context ctx,String packageName) { ActivityManager am = (ActivityManager) ctx.getSystemService(ACTIVITY_SERVICE); List<RunningAppProcessInfo> runningAppProcesses = am.getRunningAppProcesses(); if(runningAppProcesses!=null) { for (RunningAppProcessInfo runningAppProcessInfo : runningAppProcesses) { if(runningAppProcessInfo.processName.startsWith(packageName)) { return runningAppProcessInfo.importance!=RunningAppProcessInfo.IMPORTANCE_FOREGROUND && runningAppProcessInfo.importance!=RunningAppProcessInfo.IMPORTANCE_VISIBLE; //排除无界面的app } } } return false; }
相关文章推荐
- Android检测Activity或者Service是否运行
- Android检测Activity或者Service是否运行的方法
- android 检测Service是否正在运行
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
- Android获得手机所有应用(非系统)、正在运行的Service和Activity
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
- 如何检查Android后台服务线程(Service类)是否正在运行
- 自定义的Android service 监控正在运行的Activity
- ActivityManager--获得正在运行的activity与service.
- Android中获取正在运行的服务:ActivityManager.RunningServiceInfo的使用
- 如何检查Android后台服务线程(Service类)是否正在运行
- android 判断service是否正在运行
- Android应用开发判断一个Activity是否正在运行
- Android 获取正在运行的服务 ActivityManager.RunningServiceInfo使用
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用(三)
- 如何检查后台服务(Android的Service类)是否正在运行?
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
- 如何检查后台服务(Android的Service类)是否正在运行?
- Android使用工具方法-检测服务是否正在运行