views:

81

answers:

2

In my Application I want to call Logout Function if user is idle for certain amount of time how to accomplish

this answer doesn't work for me http://stackoverflow.com/questions/273450/iphone-detecting-user-inactivity-idle-time-since-last-screen-touch if i subclass my app delegate class from UIApplication and implement

- (void)sendEvent:(UIEvent *)event

It gives me error

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

I can't find the other instance of UIApplication in my application

so far i have done

instead of

@interface IdleAppDelegate : NSObject <UIApplicationDelegate> {

I have changed it to

@interface IdleAppDelegate : UIApplication<UIApplicationDelegate> {

and in the main instead of

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

I've changed it to

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

Is there anything remaining to do?

I'm getting the above error... am I missing something...?

Please Help

Thanks

+1  A: 

Try this out

-(void)applicationWillResignActive:(UIApplication *)application

{
    NSLog(@"Application not Active");
    // FETCH THE CURRENT TIME 
}
Suriya
Thanks but... It will getting called when application itself become inactive... like when incoming call OR receiving SMS etc... Not fulfilling my requirement
mihirpmehta
+1  A: 

Your application class is also an application delegate class - that's bad. UIApplicationMain() will create an instance of your custom application subclass, which will then try to an instance of its delegate - which is also an instance of your custom application subclass. You should separate these concerns - yes your custom app subclass needs to subclass UIApplication, but your app delegate should be a separate class that subclasses NSObject.

Graham Lee
Thanks Graham... But My Application doesn't have any Custom app class...What should i do...?
mihirpmehta
@mihirpmehta it does, according to the code in your question. Is that up to date?
Graham Lee