2012-04-13 112 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的系統調用的列表。這可能會有所幫助。

希望它有幫助。

相關問題