我需要您的帮助来阐明我对应用程序各种状态的理解。我将陈述我的解释-但请随时纠正我。
1)应用启动并在前台运行:state = UIApplicationStateActive
2)用户按下主页按钮:state = UIApplicationStateBackground(????)。
Debug stmt in my app shows it to be Active
3)用户双击主页并杀死该应用程序:state = UIApplicationStateInactive
如果案例2的值确实为Active,那么该值何时设置为Background?
我的基于位置的应用程序依靠此值为用户采取适当的操作。
if ( ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) ||
([UIApplication sharedApplication].applicationState == UIApplicationStateInactive) ) {
// isInBackground = YES;
// ------ UI not available
}
else {
// isInBackground = NO;
// ------ UI is available
}
问候,
山姆
最佳答案
当用户点击应用程序图标时,该应用程序在进入UIApplicationStateActive的途中会短暂经历UIApplicationStateInactive的过渡状态。这是应用程序随时准备向用户显示的地方。
打开应用程序后,应用程序状态为UIApplicationStateActive。
如果用户按下主屏幕按钮,并返回到跳板(主屏幕),或者应用程序因诸如电话之类的事情而中断,则应用程序状态将转换回UIApplicationStateInactive。
为了使您的应用程序的状态变为UIApplicationStateBackground,您的应用程序必须注册一个后台进程。研究如何使您的位置服务后台化。