アプリケーション デリゲートの didFinishLaunchingWithOptions で、バックグラウンド フェッチのためにアプリケーションが起動されたかどうかを確認したいと考えています。launchOptions ディクショナリには何もありません。それで、それを確認する方法はありますか?
を確認できることはわかってapplicationState
いますが、アプリを正常に起動しても、何らかの理由で UIApplicationStateBackground が返されることがあります。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if (application.applicationState != UIApplicationStateBackground) {
// Analytics initialization code
}
}
Analytics の初期化コードにブレークポイントを作成したところ、アプリを正常に起動してもこのブロックに入ることがある!
applicationDidBecomeActive
いつ、またはapplicationDidEnterBackground
呼び出されるかを後で検出できることを知っています。これらのアプローチを使用して状態を検出する場合は、Analytics の初期化コードを別の場所に移動する必要があります。残ってapplication:didFinishLaunchingWithOptions:
いると、アプリがバックグラウンド フェッチを開始するたびに呼び出されます。applicationState
では、Analytics の初期化コードを別のメソッドに移動し、チェックインしないようにする必要がありapplication:didFinishLaunchingWithOptions:
ますか? もしそうなら、私はこれにどの方法を使うことができますか?