1

アプリを最初に開いたときは読み込み時間が長いので、読み込み画面を表示できます。ユーザーがホームボタンをクリックしてアプリを終了し、再度開くと(viewDidLoad/viewDidAppearメソッドは再度呼び出されません)、アプリには別の読み込み期間があります。これは、「ウェイクアップ」している間だと思います。

ユーザーがホームボタンを押してアプリをバックグラウンドに送信したことを検出するためにどのような方法を使用できますか?また、アプリがバックグラウンドから復活したことを検出するためにどのような方法を使用できますか?

これは、ロード画面を適切に提供するのに十分なはずですが、念のためです。「復活」後にロードが終了したことを検出する方法もありますか?

4

2 に答える 2

2

の通知を登録できますUIApplicationWillEnterForegroundNotification。そこであなたはあなたのことをすることができます。

- (void)viewDidLoad
{
[super viewDidLoad];

// Register for the notifcation 
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(refreshView) name:UIApplicationWillEnterForegroundNotification object:nil];  

}  

-(void)refreshView
{
/* 
 Invoked when application enters foreground. Do your stuff

 */   

 }  

オブザーバーを削除するには

-(void)dealloc
{
  [[NSNotificationCenter defaultCenter] removeObserver:self];
  [super  dealloc];
}
于 2013-02-16T04:43:37.277 に答える
2

アルバートあなたはAppDelegateで宣言されたこの2つのメソッドのホームボタンクリックを検出することができます

 - (void)applicationWillResignActive:(UIApplication *)application
 - (void)applicationDidEnterBackground:(UIApplication *)application

これらはあなたが使用できる通知です

[[NSNotificationCenter defaultCenter] addObserver: self
                                         selector: @selector(setFlag:)
                                             name: UIApplicationWillResignActiveNotification
                                           object: [UIApplication sharedApplication]];


[[NSNotificationCenter defaultCenter] addObserver: self
                                         selector: @selector(setFlag1:)
                                             name: UIApplicationDidEnterBackgroundNotification
                                           object: [UIApplication sharedApplication]];
于 2013-02-16T04:57:09.927 に答える