实际上,我正在开发 iPhone 应用程序。我想跟踪处于活动状态的应用程序数量相同的应用程序状态或后台应用程序数量。你知道如何跟踪任务吗?我认为它与任务管理器有关。请给我一些指导。谢谢
问问题
297 次
1 回答
1
当我试图这样做时,我花了很多时间。但没有结果。
我能得到的最好结果是获取活动和后台运行应用程序的列表(实际上是正在运行的进程列表):
-(void) listOfProcesses {
int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0};
size_t miblen = 4;
size_t size;
sysctl(mib, miblen, NULL, &size, NULL, 0);
int st;
struct kinfo_proc * process = NULL;
struct kinfo_proc * newprocess = NULL;
do {
size += size / 10;
newprocess = realloc(process, size);
if (!newprocess){
if (process){
free(process);
}
}
process = newprocess;
st = sysctl(mib, miblen, process, &size, NULL, 0);
} while (st == -1 && errno == ENOMEM);
if (st == 0){
if (size % sizeof(struct kinfo_proc) == 0){
int nprocess = size / sizeof(struct kinfo_proc);
if (nprocess){
for (int i = nprocess - 1; i >= 0; i--){
NSLog(@"Pid: %d, Process name: %@",process[i].kp_proc.p_pid,process[i].kp_proc.p_comm);
}
free(process);
}
}
}
}
在这个列表中有几个系统进程,但是对它们进行排序是没有问题的。
有关 mo 的信息,请参阅本手册:
这是 Unix 系统调用列表。这可能会有所帮助。
希望能帮助到你。
于 2012-08-08T14:48:11.477 回答