5

G'day iOS Guru さん、

回答を広範囲に検索しましたが、見つかりません(私の質問に対する最初の回答は、別の同様の質問に対するものになると思いますが、見つかりません)。

とにかく、私の問題は、ユーザーがドロップされたピンの周りにカスタマイズされた円のオーバーレイを使用してマップ上にピンをドロップできる単純なマップ アプリを実行していることです。

アプリがバックグラウンドに入ったとき (iPhone がロックされているか、ホーム ボタンが押されている)、5 分以内にアプリを再起動すると、ピンはまだそこにあり、アプリは最後の画面に戻ります。

すべて良い。

ただし、アプリをバックグラウンドで 5 分以上放置すると、アプリが再起動し、すべてのピンが失われます。

plistに「アプリケーションはバックグラウンドで実行されません=いいえ」があり、必要なバックグラウンドモードで「アプリが位置情報の更新を登録する」も有効にしました。

アプリがバックグラウンドに入り、最後に開いたビューを読み込んだ後にアプリが再起動しないようにするにはどうすればよいですか?

4

2 に答える 2

3

iOS は、フォアグラウンドで行われていることを実行するために追加のリソースが必要な場合、アプリがバックグラウンドにある間にアプリを終了することができます。

アプリが終了したときにデータが保存/アーカイブされ、再起動時にアンパックされて、ユーザーが最後にいた場所に戻るようにする必要があります。これを行う従来の方法はapplicationDidEnterBackground、アプリが中断されたときに呼び出される メソッドを使用することです。その後、アプリが後で終了した場合に備えて、正常に再開するために必要なすべてのデータを保存できます。

ただし、iOS 6 以降をターゲットにしている場合は、新しい機能であるState Presumption & Restoration (ドキュメントへのリンク) を利用できます。状態の復元は、面倒な作業の一部 (すべてではない) を iOS にオフロードし、UI のスナップショットを自動的に作成して、データを保存および復元するためのより簡単な方法を提供します。

于 2013-06-03T09:08:14.880 に答える
0

AppDelegate.m で

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
    // Save your data
}
于 2013-06-03T09:02:44.887 に答える