700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android ActivityManager 检测Service与Activity是否正在运行

Android ActivityManager 检测Service与Activity是否正在运行

时间:2021-06-23 18:54:32

相关推荐

Android ActivityManager 检测Service与Activity是否正在运行

检测Service是否已启动

publicstaticbooleanisServiceRunning(StringserviceClassName){finalActivityManageractivityManager=(ActivityManager)Application.getContext().getSystemService(Context.ACTIVITY_SERVICE);finalList<RunningServiceInfo>services=activityManager.getRunningServices(Integer.MAX_VALUE);for(RunningServiceInforunningServiceInfo:services){if(runningServiceInfo.service.getClassName().equals(serviceClassName)){returntrue;}}returnfalse;}

检测应用程序员是否已开启

权限

<uses-permission android:name="android.permission.GET_TASKS"/>

代码----判断Activity是否正在运行

ActivityManageram=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);List<RunningTaskInfo>list=am.getRunningTasks(100);booleanisAppRunning=false;StringMY_PKG_NAME="com.cyberblue.iitag";for(RunningTaskInfoinfo: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的栈顶*/publicbooleanisTopActivy(StringcmdName){ActivityManagermanager=(ActivityManager)context.getSystemService(ACTIVITY_SERVICE);List<RunningTaskInfo>runningTaskInfos=manager.getRunningTasks(1);StringcmpNameTemp=null;if(null!=runningTaskInfos){cmpNameTemp=(runningTaskInfos.get(0).topActivity).toString);Log.e("cmpname","cmpname:"+cmpName);}if(null==cmpNameTemp)returnfalse;returncmpNameTemp.equals(cmdName);}

下面代码检测当前Activity是不是栏启动器

privatebooleanisLauncherRunnig(Contextcontext){booleanresult=false;List<String>names=getAllTheLauncher();ActivityManagermActivityManager=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);List<ActivityManager.RunningAppProcessInfo>appList=mActivityManager.getRunningAppProcesses();for(RunningAppProcessInforunning:appList){if(running.importance==RunningAppProcessInfo.IMPORTANCE_FOREGROUND){for(inti=0;i<names.size();i++){if(names.get(i).equals(running.processName)){result=true;break;}}}}returnresult;}

----------------判断App是否正在运行---------------------

/***判断app是否正在运行*@paramctx*@parampackageName*@return*/publicbooleanappIsRunning(Contextctx,StringpackageName){ActivityManageram=(ActivityManager)ctx.getSystemService(ACTIVITY_SERVICE);List<RunningAppProcessInfo>runningAppProcesses=am.getRunningAppProcesses();if(runningAppProcesses!=null){for(RunningAppProcessInforunningAppProcessInfo:runningAppProcesses){if(runningAppProcessInfo.processName.startsWith(packageName)){returntrue;}}}returnfalse;}/***app是否在后台运行*@paramctx*@parampackageName*@return*/publicbooleanappIsBackgroundRunning(Contextctx,StringpackageName){ActivityManageram=(ActivityManager)ctx.getSystemService(ACTIVITY_SERVICE);List<RunningAppProcessInfo>runningAppProcesses=am.getRunningAppProcesses();if(runningAppProcesses!=null){for(RunningAppProcessInforunningAppProcessInfo:runningAppProcesses){if(runningAppProcessInfo.processName.startsWith(packageName)){returnrunningAppProcessInfo.importance!=RunningAppProcessInfo.IMPORTANCE_FOREGROUND&&runningAppProcessInfo.importance!=RunningAppProcessInfo.IMPORTANCE_VISIBLE;//排除无界面的app}}}returnfalse;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。