Al igual que qik.com o ustream.com, cuando cargan contenido de iphone a servidor, funciona a través de daemon. Por lo tanto, incluso cuando sale de la aplicación con la salida, la tarea sigue activada con el daemon de fondo. ¿Hay algún método que pueda implementar el proceso del daemon de la misma manera? Gracias !!!¿Cómo implementar el proceso Daemon para tareas en segundo plano en iphone sdk 3.0?
Respuesta
iPhone OS no le permite agregar procesos en segundo plano.
Desafortunadamente, no puede crear un proceso en segundo plano utilizando el iPhone SDK. Solo podrá subir datos mientras se ejecuta la aplicación.
Lo que es más probable es que, al salir, guarden el estado, luego al iniciar el currículo que transfieren.
Si los datos tienen que ser enviados, esperaría hasta que la transferencia se haya realizado en la aplicación WillTernimate :. Por lo que yo sé, la aplicación no se cerrará si bloquea el hilo en applicationWillTerminate. (Corrígeme si estoy equivocado). Pero tenga cuidado, si los datos son enormes o la velocidad de Internet del usuario es mala, debe salir de todos modos y reanudar la transferencia la próxima vez. Configure un temporizador para verificar el tiempo de espera.
Atención: esto puede ser rechazado por App Store.
Apple se reserva el derecho de finalizar la aplicación si el hilo se bloquea en 'applicationWillTerminate:' durante más tiempo que una cierta cantidad de tiempo (generalmente unos cinco segundos más o menos). Además, si bloqueas más tiempo que eso y la aplicación * no * muere, pierde las aplicaciones de transición fade-out cuando dejan de funcionar normalmente; en su lugar, parece un choque para el usuario (la aplicación simplemente desaparece y el dispositivo presenta el trampolín de nuevo). – Tim
Hacer cualquier cosa en ApplicationWillTerminate: eso puede tomar un tiempo significativo es una mala idea. –
Hilo de bloque en applicationWillTerminate: no se eliminará en un corto tiempo, pero SERÁ rechazado por App Store. Para no AppStore o aplicaciones personales, aquí está el código:
@interface MyApplication : UIApplication
{
BOOL _isApplicationSupposedToTerminate;
}
@property (assign) BOOL isApplicationSupposedToTerminate;
- (void)_terminateWithStatus:(int)status;
@end
@implementation MyApplication
@synthesize isApplicationSupposedToTerminate = _isApplicationSupposedToTerminate;
- (void)_terminateWithStatus:(int)status
{
if (self.isApplicationSupposedToTerminate) {
[super _terminateWithStatus:status];
}
else {
return;
}
}
@end
En main.m
int retVal = UIApplicationMain(argc, argv, @"MyApplication", nil);
Delegado:
- (void)applicationWillTerminate:(UIApplication *)application
{
[(MyApplication*)application setIsApplicationSupposedToTerminate:!kIsTransferDone];
}
Esto detendrá la aplicación de la terminación de menos que su traslado se realiza . Configurar un temporizador para el tiempo de espera de verificación es importante. Y en applicationDidReceiveMemoryWarning :, renuncie a su aplicación por:
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { [(MyApplication*)application setIsApplicationSupposedToTerminate:YES]; [application terminateWithSuccess]; }
Esto debería ser capaz de hacer que termine su trabajo. Para jailbreak solo.
Buen método, pero no funciona muy bien para mí. Simplemente permite que la aplicación viva entre 1 y 20 segundos más, después de lo cual seguirá matando con una advertencia en los registros:
–
TinkerTank
El servicio Deamon es el mejor servicio en lugar de otros servicios o concepto para el procesamiento de fondo en iphone. Visite el siguiente enlace
http://chrisalvares.com/blog/?tag=iphone-daemon.
'De la Parte I:" Tendrá que hacer las siguientes cosas antes de que podamos comenzar. 1) Asegúrese de que su iPhone esté roto "- no es muy útil .... – jww
Ver también Apple Executing Code in the Background.
- 1. Depurando tareas en segundo plano
- 2. ¿Por qué utilizar el servicio para tareas en segundo plano?
- 3. GameKit en iPhone SDK 3.0
- 4. ¿Cómo ejecutar gdb contra un daemon en segundo plano?
- 5. Iphone SDK: Enviar correo electrónico en segundo plano en la aplicación iphone
- 6. Valor devuelto del proceso en segundo plano
- 7. php ejecutar un proceso en segundo plano
- 8. Para identificar el proceso en segundo plano y ponerlo en primer plano en C++ WIN32
- 9. ¿Cómo puedo usar nohup para ejecutar el proceso como proceso en segundo plano en Linux?
- 10. ¿Cómo se inicia un proceso en segundo plano en Perl?
- 11. ¿Cómo ejecuté() un proceso en segundo plano en C?
- 12. Inicie un proceso en segundo plano en Linux con C
- 13. Inicio de tareas en segundo plano con Capistrano
- 14. iPhone SDK 3.0 con 4.0
- 15. Simulación de tareas en segundo plano en AppHarbor
- 16. cómo ejecutar mi aplicación en segundo plano en iphone?
- 17. iOS - Cómo completar un proceso largo en segundo plano
- 18. nohup: ejecutar el proceso de PHP en segundo plano
- 19. iPhone SDK 3.0: ¿dónde está el Bluetooth?
- 20. ¿Genera un proceso en segundo plano en Ruby en Windows?
- 21. iPhone SDK 3.0 Acceso a la Cámara
- 22. proceso en segundo plano en java escuchando stdin
- 23. ¿Es posible ejecutar el acelerómetro del iPhone en segundo plano?
- 24. Cómo ejecutar un proceso ~ 30sec en segundo plano cada hora (aplicación iphone)
- 25. deshabilitar el desplazamiento en una UITableView (iPhone SDK 3.0)
- 26. ¿Cómo usar Shake API en iPhone SDK 3.0?
- 27. Enviar comando a un proceso en segundo plano
- 28. iphone sdk> 3.0. ¿Miniatura de video?
- 29. Rieles Creación de nuevo subproceso o proceso en segundo plano
- 30. Cómo generar documentos pdf página por página en tareas en segundo plano en App Engine
Esto cambiará con iPhone OS 4.0. Ahora puede solicitar el sistema operativo para mantener su aplicación en funcionamiento durante unos minutos más, o registrarse para algunos eventos (cambio de ubicación) para reactivar su aplicación. – Rudi