Files
GiGaMaskTime/GIGA/AppDelegate.m
T

108 lines
3.7 KiB
Objective-C

//
// AppDelegate.m
// GIGA
//
// Created by lianxiang on 2018/8/13.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import "AppDelegate.h"
#import "AppDelegate+GiGaConfig.h"
#import "AppDelegate+ThirdParty.h"
#import "GiGaUserDefault.h"
#import "JPUSHService.h"
#import "GiGaLocalNotificationManager.h"
@interface AppDelegate ()
//保持后台长时间运行
@property (nonatomic,assign) UIBackgroundTaskIdentifier backgroundTask;
@property (nonatomic,strong) NSTimer *timer;
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//[NSThread sleepForTimeInterval:1];//延迟启动
_isMasking = NO;
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self registLocalNotification];
[self configThridPartyWithOptions:launchOptions];
[self configEnvironment];
[self setupRootVC];
//广告页
[self creatAdView];
//[self setupTabBarController];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
// 当 开启面膜时间 app长期保持后台模式
if (_isMasking) {
[self creatBackGoundTask];
}
}
-(void)creatBackGoundTask{
//告诉系统当前app在后台有任务处理,需要时间
self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
self.backgroundTask = UIBackgroundTaskInvalid;
}];
self.timer = [NSTimer scheduledTimerWithTimeInterval:30.0 target:self selector:@selector(applyToActiveForMoreTime) userInfo:nil repeats:YES];
[self.timer fire];
}
-(void)applyToActiveForMoreTime{
//如果系统给的剩余时间小于60秒 就终止当前的后台任务,再重新初始化一个后台任务,重新让系统分配时间,这样一直循环下去,保持APP在后台一直处于active状态。
if ([UIApplication sharedApplication].backgroundTimeRemaining < 60.0) {
{//如果剩余时间小于60秒
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
self.backgroundTask = UIBackgroundTaskInvalid;
}];
}
}
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
application.applicationIconBadgeNumber = 0;
[JPUSHService resetBadge];
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
//app 挂起 面膜时间未结束 将发送本地通知提醒
if (_isMasking) {
// [[GiGaLocalNotificationManager localNotifiationCenter] sendLocalNotification:@"闹钟提醒!" fireTimeInterval:2 alertAction:@"面膜时间已添加闹钟提醒!" withIdentifier:kLOCALNotifiID_APPTERMINAL];
}
}
-(void)remoteControlReceivedWithEvent:(UIEvent *)event
{
if (event.type == UIEventTypeRemoteControl ) {
}
}
@end