Si el SO del telefono detecta (o mejor dicho sospecha) que la aplicacion deja de responder, para la ejecucion y fuerza un reinicio. Debido a esto es imposible utilizar while (true) o algo por el estilo...
Para setear un timer, utilizamos la funcion:
int ISHELL_SetTimer
(
IShell * pIShell,
int32 dwMSecs,
PFNNOTIFY pfn,
void * pUser
);
Los parametros serian: un puntero a la interface iShell, cantidad de milisegundos del timer, un puntero a la funcion callback que sera llamada por el timer, y por ultimo un void pointer que sera pasado como parametro cuando se llame al callback.
Los valores de retorno son AEE_SUCCESS, AEE_EBADPARM, AEE_ENOMEMORY.
La funcion que definamos como callback, debe tener, obviamente, como unico parametro un void * y no retornar ningun valor.
Una cosa mas a tener en cuenta, es que la llamada al callback es por unica vez, asi que si necesitamos que se ejecute constantemente, debemos re setear el timer adentro del mismo callback.
La mayoria de los telefonos despues de permanecer cierto tiempo sin que se presione alguna tecla, entran en un estado de IDLE o SLEEP. Si necesitamos evitar esto necesitamos handlear el evento de la siguiente manera:
case EVT_APP_NO_SLEEP:
//Don't want to sleep
return TRUE;
No hay comentarios:
Publicar un comentario