AcctivityManager
ActivityManager.MemoryInfo: 系统可用内存信息
ActivityManager.RecentTaskInfo: 最近的任务信息
ActivityManager.RunningAppProcessInfo: 正在运行的进程信息
ActivityManager.RunningServiceInfo: 正在运行的服务信息
ActivityManager.RunningTaskInfo: 正在运行的任务信息
1 ActivityManager.MemoryInfo类
常用字段:
long availMem 系统可用内存
long threshold系统内存不足的阀值,即临界值
boolean lowMemory 如果当前可用内存<=threshold,该值为真
2 ActivityManager.RunningAppProcessInfo类
常用字段:
int pid 进程ID
int uid 进程所在的用户ID
String processName 进程名,默认是包名或者由android:process=””属性指定
String [ ] pkgList 运行在该进程下的所有应用程序名
3 android 判断activity是否在前台
//如果不在前台,停止线程刷新时间
ActivityManager am = (ActivityManagergetSystemService(ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
if(!"com.math.speedPractice".equals(cn.getPackageName())|| !"com.math.speedPractice.MathSpeedPractice".equals(cn.getClassName())){
if(myThread!=null){
myThread.sign=1;
}
}
4 获得后台正在运行的程序
ActivityManager _ActivityManager = (ActivityManager) this
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> list = _ActivityManager
.getRunningAppProcesses();
int i = list.size(); //列表长度
Log.i("tag", String.valueOf(i));
for (int j = 0; j < list.size(); j++) {
Log.i("tag", list.get(j).processName);
}
5 ActivityManager: java.lang.SecurityException 问题
:The java.lang.SecurityException you are seeing is because you may enter two entries pointing to same activity. Remove the second one and you should be good to go.
发现这个Activity在Manifest文件里写了两份,去掉一份后,终于可以正常运行了。
注:此问题还会引起,在手机端点击程序图标时,会提示程序未安装在手机上。