2012-05-01 53 views
17

Skype update text contiene siguiente:Cómo reiniciar la aplicación si el apagado de forma inesperada

de la aplicación se reinicia automóviles si cierra inesperadamente

¿Cómo es posible llevar a cabo a través de SDK que?

+0

¿Nos puede proporcionar un enlace en Skype dice que sí puede auto reinicio? –

+2

@MaximMikheev, por supuesto, aquí: http://www.iclarified.com/entry/index.php?enid=21659 – Speakus

+1

o incluso mira aquí: http://itunes.apple.com/us/app/skype/id304878510 ? mt = 8 en la sección: Novedades en la Versión 4.0 – Speakus

Respuesta

14

Hasta donde yo sé, algunas aplicaciones se pueden ejecutar en segundo plano y se pueden reiniciar en casos específicos. Esto es de documentos de Apple

https://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html#//apple_ref/doc/uid/TP40007125

Si inicia este servicio y su aplicación se termina posteriormente, el sistema vuelve a lanzar automáticamente la aplicación en segundo plano si llega un nuevo evento. En tal caso, el diccionario de opciones transferido a la aplicación: didFinishLaunchingWithOptions: método del delegado de su aplicación contiene la clave UIApplicationLaunchOptionsLocationKey para indicar que su aplicación se inició debido a un evento de ubicación.

Mi opinión es: Skype se relanzó con mecanismo de notificaciones remotas.

actualización

Bueno, creo que he encontrado algo. @Malek_Jundi estaba a la mitad de la razón. Su aplicación debe fallar con un código de salida distinto de cero, pero debe registrarse como aplicación de VoIP.

Como las aplicaciones de VoIP deben seguir ejecutándose para recibir llamadas entrantes, el sistema relanza automáticamente la aplicación si sale con un código de salida distinto de cero. (Esto podría ocurrir en los casos en que haya una presión de memoria y su aplicación finalice como resultado). Sin embargo, la finalización de la aplicación también libera todos sus sockets, incluido el utilizado para mantener la conexión del servicio de VoIP. Por lo tanto, cuando se lanza la aplicación, siempre necesita crear sus sockets desde cero.

http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW12

+0

Pero el usuario tiene que hacer clic en el mensaje notificatino para que ya no se reinicie automáticamente ... –

+0

La presentación de alerta al usuario no es la única opción, AFAIK. De todos modos, solo mis pensamientos sobre el tema, no sé cómo lo maneja Skype. – anticyclope

+0

Esto suena prometedor, aunque no he encontrado ninguna documentación sobre el reinicio automático. ¿Alguien puede confirmar un reinicio exitoso después de que la aplicación haya sido cancelada por un valor de devolución/valor de retorno distinto de cero? – KPK

1

por lo que sé que no es posible reiniciar su aplicación ... podría matar su aplicación usando exit(1); pero Apple no permite esto y será rechazado. tal vez haga alguna solución al eliminar algunas vistas del controlView principal y agregarlo de nuevo y restablecer los datos y el contenido ... pero haciendo un reinicio real no lo creo.

1

No estoy seguro de qué pasa con Skype pero - Desafortunadamente, no hay forma de reiniciar la aplicación. Incluso, no hay forma de salir o salir de la aplicación. (Para salir, consulte this sección de enlace "No cierre programáticamente")

3

Skype hace exactamente esto:

  1. Registros Es sockets TCP para VoIP.
  2. Registros en.
  3. A su código de salida distinto de cero la aplicación va a ser relanzado por iOS (Dado que las aplicaciones de VoIP necesitan para mantenerse funcionando a fin de recibir las llamadas entrantes, el sistema vuelve a lanzar automáticamente la aplicación si se sale con un código de salida distinto de cero.)
  4. Inicia inmediatamente una tarea en segundo plano (las aplicaciones relanzadas permanecen suspendidas).
  5. A continuación, registra su socket de inicio de sesión para VoIP.
  6. Se registra de nuevo en
+0

¿Puedes proporcionar alguna documentación de Apple sobre el párrafo 3? – Shamsiddin

0

La pregunta es ¿por qué querrías hacer eso ?, si su respuesta es:. Desea hacer una aplicación para ejecutarse en un "iPad Kiosk" por lo que en caso de que se estrelló Necesito que la aplicación se reinicie automáticamente, entonces, lo que funcionará para usted es poner el iPad en "Kiosk mode" y el sistema operativo reiniciará automáticamente la aplicación en caso de fallas.

Tome un vistazo a:

http://www.webascender.com/Blog/ID/447/How-to-Setup-Kiosk-Mode-Lock-Your-iPad-to-Just-One-App

Cheers,

Cuestiones relacionadas