在设备上安装时如何将应用程序发送到后台?

Posted

技术标签:

【中文标题】在设备上安装时如何将应用程序发送到后台?【英文标题】:How send application to background when install on device? 【发布时间】:2012-03-12 09:35:50 【问题描述】:

我正在制作一个应用程序,其中我想要一些功能,例如当我在设备上运行我的应用程序时,它将立即关闭而不显示任何屏幕。但应用程序在后台运行。当用户点击应用程序的图标时,它不会显示任何屏幕,而是在后台工作。间隔 2 分钟后,它将显示一条警报消息。怎么做?

我已经使用了下面给出的代码:-

-(void)applicationDidFinishLaunching:(UIApplication *)application
[application cancelAllLocalNotifications];
[self applicationWillTerminate:application];-(void)applicationWillTerminate:(UIApplication *)application
/*
 Called when the application is about to terminate.
 Save data if appropriate.
 See also applicationDidEnterBackground:.
 */

UILocalNotification* ln = [[UILocalNotification alloc] init];
ln.fireDate =[NSDate dateWithTimeIntervalSinceNow:30];
ln.alertBody = [NSString stringWithFormat:@"Now app is working in Background."];         
ln.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] scheduleLocalNotification:ln];
ln.hasAction=NO;
[ln release];
exit(0);

但这不是我想要的。那么这段代码中的错误是什么?怎么做?

提前谢谢...

【问题讨论】:

【参考方案1】:

您无法通过手动调用 [self applicationWillTerminate:application]; 来收起您的应用。它是在您的应用程序即将终止时调用的委托方法,而不是终止应用程序的方法。

您可以尝试在didFinishLaunchingWithOptions: 中安排本地通知,然后致电exit(0);。可能会暂时显示某种 splah 屏幕(或黑屏)。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

  [application cancelAllLocalNotifications];
  UILocalNotification* ln = [[UILocalNotification alloc] init];
  ln.fireDate =[NSDate dateWithTimeIntervalSinceNow:30];
  ln.alertBody = [NSString stringWithFormat:@"Now app is working in Background."];         
  ln.soundName = UILocalNotificationDefaultSoundName;
  [[UIApplication sharedApplication] scheduleLocalNotification:ln];
  ln.hasAction=NO;
  [ln release];
  exit(0);    //this line kills the app (and gets your app rejected)
  return NO;  //this line is just to make compiler happy

请注意,这绝对不会被 App Store 批准。

【讨论】:

我可以证明,它肯定会被苹果拒绝。当通话结束时,我想用假通话应用程序做类似的事情。他们检查所有 exit(0) 调用,如果发现任何调用,他们会立即拒绝该应用程序。

以上是关于在设备上安装时如何将应用程序发送到后台?的主要内容,如果未能解决你的问题,请参考以下文章

真实设备如何将位置信息推送到API?

收到推送通知时在后台执行代码

Swift - 检测应用程序何时发送到后台而不是设备锁定时

如何在后台执行限制中生存

如何将.ipa安装到其他ios设备上

如何在 Android 上测试打盹模式?