2012-02-03 13 views

Respuesta

9

Reiniciar la aplicación es una mala idea, estoy bastante seguro de que Apple la rechazaría. Sin embargo, podría mostrar una ventana emergente que le indique al usuario que abra y cierre la aplicación para aplicar su información actualizada. Pero la mejor manera sería simplemente llamar manualmente a los métodos necesarios para reconstruir su aplicación (es decir, los que necesitan usar los datos actualizados). Si tiene que realizar una reconstrucción exhaustiva (es decir, cosas que el usuario notará inmediatamente), podría ser una buena idea agregar una especie de barra de progreso de "carga".

4

No puede reiniciar su aplicación, y no veo por qué a) tiene que b) NUNCA QUIERE.

+0

Conozco la sensación, pero ¿qué haces cuando el cliente quiere tener configuración regional específica de la aplicación (tampoco me gusta) sin pagar el trabajo real para hacerlo correctamente. –

+0

Señala la cláusula de su contrato que habla de "alcance" y costos adicionales. De todos modos, la mejor de las suertes para ti: la respuesta de Amit es perfecta. – sosborn

+0

Gracias. Cambié la respuesta de amit por mi mismo y eliminaré mi respuesta, ya que me hizo recordar cuánto odiaba hacer esa solución. –

1

Puede hacerlo sólo si su dispositivo es jailbreak

poner un botón reinicio en su aplicación y llame a abort();. Esto bloqueará la aplicación.

Enganche -(void)exitedAbnormally; desde SBApplication y escribe el código para iniciar tu aplicación.

Si no es jailbreak, no tiene otra opción

+0

exit (0) saldrá de la aplicación sin jailbreak –

2

Puede salir y reiniciar una aplicación para iOS con un poco de ayuda del usuario. Establezca la tecla plist de la aplicación para las salidas de la aplicación en suspender. Crea una notificación local para que tu aplicación se active unos segundos en el futuro. Luego, envíale a Safari una URL. El SO terminará su aplicación cuando inicie Safari para manejar la URL. La URL podría ser una página de destino web que le indique al usuario que está en curso un relanzamiento. Luego, la notificación local se activará y le pedirá al usuario que vuelva a iniciar su aplicación.

Sin embargo, una aplicación debe ser (re) diseñada para que nunca haya una razón para hacer esto.

0

si desarrolla dispositivos liberados, puede usar el comando uicache para limpiar la memoria caché del springboard y volver a cargar nuevas aplicaciones/iconos (disponibles en el paquete UIKit).

por ejemplo,

1) si eres menor de raíz:

su mobile -c uicache 1>/dev/null 2>&1 

2) si eres menor de móvil:

uicache 

para el reinicio puede utilizar comandos reboot en la raíz y killall SpringBoard para respring

Cuestiones relacionadas