2013-12-23 3 views
1

Brew 응용 프로그램에는 활성, 일시 중지 & 백그라운드가 3 가지 유형이 있습니다. 하나의 BREW 응용 프로그램을 활성 또는 일시 중지로 시작하는 것은 매우 간단합니다. BREW2.0 이상 버전에는 새로운 응용 프로그램 유형이 있으므로 백그라운드에서 하나의 응용 프로그램을 만들 수 있습니다. 응용 프로그램 스택에 남아 있지 않으며 활성 또는 다시 시작 명령으로 상태를 변경하지 않습니다. 그것은 사용자 명령 시스템이받은 것과 상관없이 항상 백그라운드에서 유지됩니다. 소규모 프로젝트 중 하나에서 이와 같은 배경 응용 프로그램을 하나 만들고 실행해야합니다.백그라운드에서 BREW 응용 프로그램을 시작하는 방법은 무엇입니까?

불행히도 Qualcomm이나 Google에서 간단한 예를 찾을 수 없습니다. 동일한 문제가 발생한 프로그래머가 있습니까?

답변

0

네, 맞습니다. BREW2.0 +는 백그라운드 응용 프로그램을 지원합니다.

일반적인 다른 새로운 응용 프로그램과 마찬가지로 백그라운드 응용 프로그램을 시작할 때 응용 프로그램 인터페이스에서 직접 시작할 수 있습니다. 또한 ISHELL_StartApplet 함수로 시작할 수 있습니다.

하나의 추출 응용 프로그램을 백그라운드에 넣으려면 EVT_APP_STOP 이벤트를 처리 할 때 수행해야하며 dwParam을 false로 설정해야합니다. 이것에 의해 EVT_APP_STOP를 처리하면 응용 프로그램이 백그라운드로 실행됩니다. 그리고 이것을 일반 응용 프로그램으로 변경하려면 ishell_StartApplet 함수를 호출하여 다시 자체적으로 활성화해야합니다.

예제 코드 :

typedef struct _bgApp 
    { 
     AEEApplet a; 
     boolean m_bGoBg; 
    } bgApp; 

    switch (eCode) 
    { 
    case EVT_APP_START: 
     if(pMe->m_bGoBg) 
      ISHELL_CloseApplet(pMe->a.m_pIShell, FALSE); 
    case EVT_APP_STOP: 
     if(pMe->m_bGoBg) 
      *((boolean*) dwParam) = FALSE; 
     return TRUE; 
    case EVT_USER: 
     if(pMe->m_bGoBg) 
     { 
      pMe->m_bGoBg = FALSE; 
      // make applet active 
      ISHELL_StartApplet(pMe->a.m_pIShell, AEECLSID_BGAPP); } 
     else 
     { 
      pMe->m_bGoBg = TRUE; 
      // trigger EVT_APP_STOP to send app to background 
      ISHELL_CloseApplet(pMe->a.m_pIShell, FALSE); 
     } 
     return TRUE; 
    }  

배경 응용 프로그램의 제한이 있습니다. 화면을 변경하거나 사용자와 직접 통신 할 수 없습니다. 개발자는 백그라운드 응용 프로그램에서 사용하는 메모리를주의해야합니다. 이건 매우 중요합니다.

관련 문제