美文网首页
App监听生命周期事件

App监听生命周期事件

作者: bug工程狮 | 来源:发表于2019-11-19 07:11 被阅读0次

在App开发过程中,我们经常需要监听App的生命周期。一般情况下是通过注册监听,接收系统的通知,处理通知结果。

实现三步曲:

1.添加监听
  [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(p_didFinishLaunching:) name:UIApplicationDidFinishLaunchingNotification object:nil];

2.定义接收函数
  - (void)p_didFinishLaunching:(NSNotification *)obj {
    // TODO:处理业务代码
}

3.销毁监听
  - (void)dealloc {
    [NSNotificationCenter.defaultCenter removeObserver:self];
}

可以看出,整个过程虽然比较简单,但是步骤较多,每次监听都这么写比较浪费时间。于是本篇文章的主角诞生。

引入AJAppEvent

pod 'AJAppEvent'

实现代码:

// 添加监听
[self ajAddObserverName:name block:^(AJAppEventModel * _Nonnull eventModel) {
        NSLog(@"%@", eventModel.name);
    }];

// 发送通知
[self ajPostNotificationName:name object:nil userInfo:nil];

一步搞定,是不是效率高很多。

实现思路:

AJAppEvent库实现并非有什么难点,只是将简单重复的事情集中统一处理,提高开发效率。源码请点击链接

AJAppEvent中支持一下通知类型:

// 应用程序进入后台
UIApplicationDidEnterBackgroundNotification
// 应用程序将要进入前台
UIApplicationWillEnterForegroundNotification
// 应用程序完成启动
UIApplicationDidFinishLaunchingNotification
// 应用程序由挂起变的活跃
UIApplicationDidBecomeActiveNotification
// 应用程序挂起(有电话进来或者锁屏)
UIApplicationWillResignActiveNotification
// 应用程序终止(后台杀死、手机关机等)
UIApplicationWillTerminateNotification
// 应用程序收到内存警告
UIApplicationDidReceiveMemoryWarningNotification
// 当有重大时间改变(凌晨0点,设备时间被修改,时区改变等)
UIApplicationSignificantTimeChangeNotification
// 设备方向将要改变
UIApplicationWillChangeStatusBarOrientationNotification
// 设备方向改变
UIApplicationDidChangeStatusBarOrientationNotification
// 设备状态栏frame将要改变
UIApplicationWillChangeStatusBarFrameNotification
// 设备状态栏frame改变
UIApplicationDidChangeStatusBarFrameNotification
// 应用程序在后台下载内容的状态发生变化
UIApplicationBackgroundRefreshStatusDidChangeNotification
// 本地受保护的文件被锁定,无法访问
UIApplicationProtectedDataWillBecomeUnavailable
// 本地受保护的文件可用了
UIApplicationProtectedDataDidBecomeAvailable
// 截屏通知
UIApplicationUserDidTakeScreenshotNotification

相关文章

  • Flutter 生命周期

    StatefulWidget 生命周期 App 生命周期 使用 WidgetsBindingObserver 监听

  • vuex 存储状态刷新丢失问题优化

    1、在App主组建里的created生命周期中监听beforeunload事件 直接将this.$store.st...

  • App监听生命周期事件

    在App开发过程中,我们经常需要监听App的生命周期。一般情况下是通过注册监听,接收系统的通知,处理通知结果。 实...

  • uni-app 页面生命周期

    uni-app 页面生命周期 页面生命周期 uni-app 支持如下页面生命周期函数: onLoad 监听页面加载...

  • uniapp 生命周期

    应用生命周期(仅可在App.vue中监听,页面监听无效) 参考官网:https://uniapp.dcloud.i...

  • uni-app系列(三)

    文章内容:uni-app生命周期和模版语法 uni-app 支持如下页面生命周期函数:onLoad 监听页面加载,...

  • 事件

    事件 -- 监听器 -- 文章点击率 Laravel 5.3 事件 和 监听器 事件类 存放位置:一般在 app/...

  • 5.4Laravel事件

    事件 更多详细请参看laravel手册 事件/监听器 事件类存放位置:app/Event 目录中 监听器存放位置:...

  • app生命周期、控制器生命周期和事件传递、响应

    生命周期 app生命周期 控制器生命周期 事件 touch事件和手势 触摸事件首先传递到手势上,如果手势识别成功,...

  • vue生命周期

    简介 各种叫法:事件,生命周期函数,钩子函数……生命周期里面的事件是不能阻止的,它只能监听。 创建vue对象有两种...

网友评论

      本文标题:App监听生命周期事件

      本文链接:https://www.haomeiwen.com/subject/ijgiictx.html