2011-03-19 7 views
21

¿Cómo puedo suspender mi aplicación o enviar un mensaje de suspensión a mi aplicación?Suspender la aplicación

Quiero simular presionando el botón de inicio.

Respuesta

-7

Cuando se suspende la aplicación, se publica una notificación UIApplicationWillResignActiveNotification.

Supongo que podría intentar publicar esta notificación manualmente. No intenté esto yo mismo sin embargo.

+0

La notificación se eleva por iOS y llamando al método mismo no suspenderá la aplicación. –

2

No puede hacer esto.

Si desea salir de su aplicación, no temen el rechazo y el amor falso informe de bloqueo correos electrónicos positivos de los usuarios que se podría llamar exit(0);

+0

El uso de 'exit (0)' terminará la aplicación y no la suspenderá (por ejemplo, moverla al fondo). –

15

Dejar de su aplicación o de enviarlo al fondo de programación es una violación de la iOS Human Interface Guidelines , que por lo general no augura nada bueno para conseguir a través del proceso de revisión:

no dejar de fumar mediante programación

nunca abandonados un i Aplicación OS programmatically porque las personas tienden a para interpretar esto como un bloqueo. Sin embargo, si las circunstancias externas impiden que su aplicación funcione como prevista, debe informar a los usuarios sobre la situación y explicar lo que pueden hacer al respecto. Dependiendo de cómo grave el mal funcionamiento de la aplicación es tiene dos opciones.

Muestra una pantalla atractiva que describe el problema y sugiere una corrección de . Una pantalla proporciona comentarios que aseguran a los usuarios que no hay nada de malo en su aplicación . Se coloca a los usuarios en el control, dejarlos decidir si quieren para tomar medidas correctivas y continuar mediante su aplicación o pulse el botón Inicio y abrir una aplicación diferente

Si tan sólo algunas de las características de su aplicación no son en funcionamiento, muestre ya sea una pantalla o una alerta cuando personas activen la función. Mostrar la alerta solo cuando las personas intentan acceder a la función que no es funcionamiento.

La razón filosófica de esto se explica anteriormente en ese documento:

personas, no aplicaciones, debe iniciar y controlar las acciones. Aunque una aplicación puede sugerir un curso de acción o advertir sobre consecuencias peligrosas , generalmente es un error para que la aplicación tome la toma de decisiones lejos del usuario.Las mejores aplicaciones encuentran el equilibrio correcto entre personas las capacidades que necesitan mientras les ayudan a evitar los peligrosos resultados.

Los usuarios se sienten más en control de una aplicación cuando los comportamientos y controles son familiares y predecibles. Y, cuando acciones son simples y sencillo, los usuarios pueden fácilmente comprenderlas y recordarlas.

personas esperan tener un amplio oportunidad de cancelar una operación antes de que comience, y esperan tener la oportunidad de confirmar su intención para llevar a cabo una acción potencialmente destructiva . Finalmente, las personas esperan poder detener graciosamente una operación en curso.

No debe haber ninguna razón por la que deba forzar su aplicación en segundo plano durante su funcionamiento. Debería permanecer completamente funcional cuando se muestra en pantalla y debería depender del usuario cuando quiere abandonar su aplicación.

+0

¿diría que es correcto, pero la aplicación inicia una notificación y debe reabrir cerrar y usted sabe lo que está sucediendo está abierto solo para realizar algunas instrucciones , gracias de todos modos! – Doom

31

Hay un método privado instancia para UIApplication:

El siguiente código quiere trabajar, (probado en un iPhone 3GS):

UIApplication *app = [UIApplication sharedApplication]; 
[app performSelector:@selector(suspend)]; 
+0

¿Es esto aceptado por la tienda de aplicaciones? Sé que en algunos casos la salida (0) será rechazada. No estoy seguro de suspender. Me puedes confirmar? – Chan

+4

@ Chan Nunca debe llamar a una API privada para una aplicación que envíe a través de la tienda de aplicaciones. Vea la respuesta de Brad para la mejor práctica. – Rob

+1

Esto no es para alentarlo a usar una API privada, pero tengo aplicaciones que ya están en la tienda de aplicaciones con esto. Aunque al enviarlo en la tienda de aplicaciones muestra una advertencia de que hay una API privada utilizada. – sole007

12

en Swift:

UIControl().sendAction(#selector(NSURLSessionTask.suspend), to: UIApplication.sharedApplication(), forEvent: nil) 

Editar Swift3:

UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil) 
-3

Uso:

sleep(15) 

que suspenderá la aplicación de tiempo específico

+1

Esto congelará la aplicación durante un período de tiempo específico (si se realiza en la cola principal), que no es lo mismo que suspenderla (por ejemplo, moverla al fondo). –

Cuestiones relacionadas