簡體   English   中英

當我在app didFinishLaunchingWithOptions中收到UIApplicationLaunchOptionsLocationKey時,我是否初始化viewController?

[英]Do I initialize the viewController when I receive UIApplicationLaunchOptionsLocationKey in app didFinishLaunchingWithOptions?

我正在創建一個應用程序來監聽重要的位置更改事件,如果應用程序被終止,那么iOS將使用UIApplicationLaunchOptionsLocationKey設置啟動應用程序。

因此,文檔說要創建一個新的位置管理器並再次注冊位置更新。 但是,沒有提到我是否應該初始化我的viewController(就像我在正常的應用程序啟動時一樣)? 我的視圖控制器在viewDidLoad中初始化,但是在appDidFinishLaunchingWithOptions中創建。

知道操作系統為應用程序提供多長時間進行位置更新處理? 如果位置更改指示應用程序感興趣的位置,我的應用程序需要發出Web服務請求。

謝謝

您應該考慮將初始化代碼移動到新方法,例如initializeViews 此方法將檢查以確保視圖尚未初始化,然后初始化它們。 您可以從application:didFinishLaunchingWithOptions:applicationWillEnterForeground:調用此方法,但applicationWillEnterForeground:的調用application:didFinishLaunchingWithOptions:僅在應用程序未進入后台時才會發生。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    ...
    if([UIApplication sharedApplication].applicationState != UIApplicationStateBackground)
        [self initializeViews];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
    [self initializeViews];
}
- (void)initializeViews {
    if(!viewsAreInitialized) {
        ...
        viewsAreInitialized = YES;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM