Saya ingin memeriksa apakah aplikasi berjalan di latar belakang.
Di:
locationManagerDidUpdateLocation {
if(app is runing in background){
do this
}
}
Saya ingin memeriksa apakah aplikasi berjalan di latar belakang.
Di:
locationManagerDidUpdateLocation {
if(app is runing in background){
do this
}
}
Jawaban:
Delegasi aplikasi mendapat panggilan balik yang mengindikasikan transisi keadaan. Anda dapat melacaknya berdasarkan itu.
Juga properti applicationState di aplikasi UIA mengembalikan keadaan saat ini.
[[UIApplication sharedApplication] applicationState]
[[UIApplication sharedApplication] applicationState] != UIApplicationStateActive
lebih baik, karena UIApplicationStateInactive hampir setara dengan di latar belakang ...
UIApplicationState state = [[UIApplication sharedApplication] applicationState];
if (state == UIApplicationStateBackground || state == UIApplicationStateInactive)
{
//Do checking here.
}
Ini dapat membantu Anda dalam memecahkan masalah Anda.
Lihat komentar di bawah - tidak aktif adalah kasus yang cukup khusus, dan dapat berarti bahwa aplikasi sedang dalam proses diluncurkan ke latar depan. Itu mungkin atau mungkin tidak berarti "latar belakang" bagi Anda tergantung pada tujuan Anda ...
Cepat 3
let state = UIApplication.shared.applicationState
if state == .background {
print("App in Background")
}
Jika Anda lebih suka menerima panggilan balik alih-alih "bertanya" tentang status aplikasi, gunakan dua metode ini di AppDelegate
:
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"app is actvie now");
}
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"app is not actvie now");
}
cepat 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
}
Ekstensi Swift 4.0 untuk membuatnya lebih mudah diakses:
import UIKit
extension UIApplication {
var isBackground: Bool {
return UIApplication.shared.applicationState == .background
}
}
Untuk mengakses dari dalam aplikasi Anda:
let myAppIsInBackground = UIApplication.shared.isBackground
Jika Anda mencari informasi tentang berbagai status ( active
, inactive
dan background
), Anda dapat menemukan dokumentasi Apple di sini .
locationManager:didUpdateToLocation:fromLocation:
metode ini?