2012-09-25 1 views
0

나는 하나의 application.In에서 나는 백그라운드 실행 applicaiton의 목록을 얻기위한 아래의 코드를 작성했습니다 개발하고 있습니다.어떻게 모든 실행중인 애플 리케이션 정보를 얻을 수 있습니다

- (NSArray *)runningProcesses { 
@try { 
int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0}; 
    size_t miblen = 4; 

    size_t size; 
    int st= sysctl(mib, miblen, NULL, &size, NULL, 0); 

    struct kinfo_proc * process = NULL; 
    struct kinfo_proc * newprocess = NULL; 

    do { 

     size += size/ 10; 
     newprocess = realloc(process, size); 

     if (!newprocess){ 

      if (process){ 
       free(process); 
      } 

      return nil; 
     } 

     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){ 

       NSMutableArray *array = [[NSMutableArray alloc]init]; 
       BOOL Found=NO; 

       for (int i = nprocess - 1; i >= 0; i--){ 


        NSString * processID = [[NSString alloc] initWithFormat:@"%d", process[i].kp_proc.p_pid]; 
        NSString * processName = [[NSString alloc] initWithFormat:@"%s", process[i].kp_proc.p_comm]; 
[array addObject:processName]; 
[processID release]; 
        [processName release]; 
        //[array addObject:dict]; 
        //[dict release]; 
       } 
free(process); 
       return [array autorelease]; 
      } 
     } 
    } 

    return nil; 
} 
@catch (NSException *ex) 
{ 
    NSLog(@"Exception is %@",ex); 
    return nil; 
} 

가}

그것은 information.For 예제 응용 프로그램을 제공합니다, 그것은 내가이 코드를 실행 시간 후 등 앵그리 버드 템플 런, 스카이프, 같은 응용 프로그램 정보를 제공,이 앱 목록으로 제공 skype only.But 나머지 애플 리케이션은 애플 리케이션 목록을 실행하는 모바일 배경에 나타납니다. 모바일 백그라운드 실행 응용 프로그램 목록에서 실행중인 모든 앱 목록을 가져 오는 방법을 알려주십시오.

답변

0

백그라운드에서 실행중인 백그라운드 응용 프로그램이 실제로 백그라운드에서 실행되고 있지 않기 때문입니다. 그들은 애플 리케이션의 아이콘 일뿐입니다.

기기의 각 앱은 10 분 동안 백그라운드에서 실행됩니다. 그 후에 ios는 그 스레드를 죽이고 아이콘 만 표시합니다.

모든 앱을 실행하고 백그라운드에서 실행하는 대신 앱에서 실행중인 앱 목록을 빠르게 확인해보십시오. 그러면 앱을 찾을 수 있습니다. 그러나 10 분 후에 당신은 거기에서 그것을 발견하지 못할 것이다.

사용해보기. 그리고 내가 맞는지 알려 줘?

+0

10 분이 지 않아도 OS가 이러한 리소스를 필요로 할 때마다 발생합니다. 몇 초가 될 수도 있고, 몇 시간 일 수도 ... –

관련 문제