Uygulamanın arka planda çalışıp çalışmadığını kontrol etmek istiyorum.
İçinde:
locationManagerDidUpdateLocation {
if(app is runing in background){
do this
}
}
Uygulamanın arka planda çalışıp çalışmadığını kontrol etmek istiyorum.
İçinde:
locationManagerDidUpdateLocation {
if(app is runing in background){
do this
}
}
Yanıtlar:
Uygulama temsilcisi, durum geçişlerini gösteren geri aramalar alır. Buna göre izleyebilirsiniz.
Ayrıca UIApplication içindeki applicationState özelliği geçerli durumu döndürür.
[[UIApplication sharedApplication] applicationState]
[[UIApplication sharedApplication] applicationState] != UIApplicationStateActive
daha iyi, çünkü
UIApplicationState state = [[UIApplication sharedApplication] applicationState];
if (state == UIApplicationStateBackground || state == UIApplicationStateInactive)
{
//Do checking here.
}
Bu, sorununuzu çözmenize yardımcı olabilir.
Aşağıdaki yoruma bakın - etkin olmayan, oldukça özel bir durumdur ve uygulamanın ön plana çıkma sürecinde olduğu anlamına gelebilir. Hedefinize bağlı olarak bu sizin için "arka plan" anlamına gelebilir veya gelmeyebilir ...
Hızlı 3
let state = UIApplication.shared.applicationState
if state == .background {
print("App in Background")
}
Uygulama durumu hakkında "sor" yerine geri arama almayı tercih ediyorsanız, şu iki yöntemi kullanın AppDelegate
:
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"app is actvie now");
}
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"app is not actvie now");
}
hızlı 5
let state = UIApplication.shared.applicationState
if state == .background {
print("App in Background")
//MARK: - if you want to perform come action when app in background this will execute
//Handel you code here
}
else if state == .foreground{
//MARK: - if you want to perform come action when app in foreground this will execute
//Handel you code here
}
Swift 4+
let appstate = UIApplication.shared.applicationState
switch appstate {
case .active:
print("the app is in active state")
case .background:
print("the app is in background state")
case .inactive:
print("the app is in inactive state")
default:
print("the default state")
break
}
Erişimi biraz kolaylaştırmak için bir Swift 4.0 uzantısı:
import UIKit
extension UIApplication {
var isBackground: Bool {
return UIApplication.shared.applicationState == .background
}
}
Uygulamanızdan erişmek için:
let myAppIsInBackground = UIApplication.shared.isBackground
Çeşitli durumlar ( active
ve inactive
ve background
) hakkında bilgi arıyorsanız , Apple belgelerini burada bulabilirsiniz .
locationManager:didUpdateToLocation:fromLocation:
Yöntemden mi bahsediyorsun ?