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