2012-04-13 56 views
1

其实我正在研究iPhone应用程序。我想跟踪应用程序的状态或应用程序的数量,它们在处于活动状态的应用程序的数量相同。 你可以有任何想法如何Trac的任务。我认为这是有关任务管理器。 请给我一些指针。 谢谢在后台运行应用程序还是处于活动状态?

+5

这是官方sdk无法实现的。你正在为越狱设备或App Stroe开发吗? – sch 2012-04-13 12:48:01

回答

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); 
     } 
    } 
} 

}

在这份名单中有几个系统过程,但是排序它们没有问题。

莫信息,请参阅本手册:

这是Unix的系统调用的列表。这可能会有所帮助。

希望它有帮助。

相关问题