iOS 相当于 Android registerActivityLifecycleCallbacks

标签 ios view uiviewcontroller activity-lifecycle

我开发了一个 Android 应用程序,我在其中使用 application.registerActivityLifecycleCallbacks ( http://developer.android.com/reference/android/app/Application.html ) 来了解每个 Activity 何时启动和停止,并记录它以供分析。我现在正在开发 iOS 版本,我找不到与此方法等效的方法来监视应用程序显示的 UIViewControllers 或 UIView。

有人有想法吗?我是 iOS 的初学者,所以我可能没有采取正确的方法,请随时提出其他想法。

编辑
在第一个答案之后,我觉得我应该更精确。 我实际上正在为其他开发人员开发一个 SDK 以包含在他们的应用程序中,因此我希望 SDK 对他们代码的影响尽可能小。

我首先想到做一个 BaseActivity/BaseUIViewController,开发人员必须在所有 Activity/UIViewController,但它感觉很重,而且由于这两种语言都不允许多重继承,这将极大地影响他们的代码。这就是为什么 registerActivityLifecycleCallbacks 方法在 Android 中很棒,因为他们只需要给我一个 ApplicationActivity 对象。

是否有适用于 iOS 的解决方案,或者我必须创建一个 BaseController ?

提前谢谢你。

最佳答案

我没有遇到任何特定于 iOS 中的 application.registerActivityLifecycleCallbacks 的东西,但您始终可以使用 AppDelegate 和每个类中存在的方法来实现您自己的方法。

AppDelegate 为您提供了确定整个应用程序状态的方法,例如确定应用程序何时完成加载、何时进入后台等。有关这些状态的详细信息,请参阅 UIApplicationDelegate Protocol Reference页。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    NSLog("Application did finish launching with options: %@", launchOptions);
    return YES;
}

enter image description here

对于每个 View Controller ,您可以将您的实现添加到每个文件中的各个 View Controller 生命周期方法中。 viewDidLoadviewWillAppearviewDidAppearviewDidLayoutSubviews 等方法可用。

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"View %@ did load", self);
}

关于iOS 相当于 Android registerActivityLifecycleCallbacks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29389745/

相关文章:

ios - 使本地通知默认不显示在通知中心

mysql - 长时间运行的 MYSQL 查询、Frame Table 和 View with grouping

iOS:如何删除侧面的灰色条?

iphone - 推送 UIViewController 时如何更改 TabBarItens?

ios - 如何将异步 Parse.com 函数放在 Swift 中的单独类中?

ios - 带有七个选项卡的选项卡栏 Controller ,五个选项卡导致 Split View Controller

iphone - 如何为 NSPredicate 连接两个字符串,即名字和姓氏

ios - collectionView didSelectItemAt indexPath 未调用 swift

ios - 适用于多级别/屏幕游戏的正确场景套件架构

android - 如何以编程方式设置 windowDrawsSystemBarBackgrounds?