代码之家  ›  专栏  ›  技术社区  ›  Mihir Mehta

如何在iPhone SDK中检测空闲用户

  •  3
  • Mihir Mehta  · 技术社区  · 14 年前

    在我的应用程序中,如果用户空闲了一定时间,我想调用注销函数来完成

    这个答案不适合我 iPhone: Detecting user inactivity/idle time since last screen touch 如果我从uiapplication子类化应用委托类并实现

    - (void)sendEvent:(UIEvent *)event
    

    它给了我错误

    *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'There can only be one UIApplication instance.'
    

    在我的应用程序中找不到uiapplication的其他实例

    到目前为止我已经做了

    而不是

    @interface IdleAppDelegate : NSObject <UIApplicationDelegate> {
    

    我把它改成了

    @interface IdleAppDelegate : UIApplication<UIApplicationDelegate> {
    

    而主要不是

     int retVal = UIApplicationMain(argc, argv, nil, nil);
    

    我把它改成了

    int retVal = UIApplicationMain(argc, argv, @"IdleAppDelegate", @"IdleAppDelegate");
    

    还有什么事要做吗?

    我得到上面的错误…我错过什么了吗…?

    请帮助

    谢谢

    2 回复  |  直到 14 年前
        1
  •  2
  •   user23743    14 年前

    您的应用程序类也是一个应用程序委托类-这很糟糕。 UIApplicationMain() 将创建自定义应用程序子类的实例,然后尝试其委托的实例,该实例也是自定义应用程序子类的实例。你应该分开这些关注点-是的,你的定制应用子类需要子类 UIApplication 但是你的应用委托应该是一个单独的类,子类 NSObject .

        2
  •  0
  •   Ben Zotto sberry    14 年前

    试试这个

    -(void)applicationWillResignActive:(UIApplication *)application
    
    {
        NSLog(@"Application not Active");
        // FETCH THE CURRENT TIME 
    }