2010-11-26 44 views
0

Actuellement, mon application iPad met en œuvre le multitâche. Cependant, je voudrais offrir à l'utilisateur une option pour désactiver le multitâche. Est-ce possible, étant donné que vous ne pouvez pas modifier le dictionnaire Info.plist où la clé UIApplicationExistsOnSuspend est définie?Activation et désactivation du multitâche dans l'application

+0

Par curiosité, pourquoi un l'utilisateur choisit de désactiver le multitâche (c'est-à-dire quel est le compromis)? –

+0

Mon application lit l'audio en arrière-plan. Parfois, pendant ma phase de test, je ne voulais pas que l'audio reste actif lorsque je passais d'une application à l'autre, d'où l'option conviviale. –

Répondre

1

Eh bien, vous pourrait mis un drapeau dans votre délégué application qui serait tout simplement quitter votre application lorsque le drapeau est TRUE dans la méthode de délégué applicationDidEnterBackground:, comme ceci:

@interface MyAppDelegate : NSObject <UIApplicationDelegate> { 
    BOOL multitasking; 
    ... 
} 
... 
@end 

@implementation MyAppDelegate 

- (void) applicationDidEnterBackground:(UIApplication *)application { 
    if(!multitasking) { 
     exit(0); 
     return; 
    } 
    ... 
} 

... 
@end 
+0

Est-ce que iOS "termine" doucement les applications lorsque l'utilisateur se ferme? Si oui, existe-t-il une alternative à "exit (0)"? –

+0

@Evan, Non, il n'y a aucun moyen de "doucement" terminer les applications dans le code. –

+0

La réponse à votre question est oui, iOS * fait * "doucement" la terminaison des applications. Il existe une méthode sur UIApplication nommée _terminateWithStatus: cela fonctionne. Cependant, il est privé donc il n'y a pas de moyen (endossé par Apple) pour * vous * de terminer doucement une application. Appeler exit() va tuer l'application, mais vous ne vous ferez pas d'amis avec. Donc, je crois que la réponse à vos questions initiales est non. –