-->

iPhone session - timeout on inactivity

2020-07-20 15:24发布

问题:

When the user successfully log into my app, session starts, after X period of inactivity the session will time out.

Now how do you detect, the user to see if his active using the application or not using it?

1) Check every on button?

2) check on screen load?

回答1:

The most elegant way I've found to do this is to use a category on UIApplication that provides a sendEvent: method that resets an NSTimer (after calling its superclass implementation of course). If the timer goes off, post a notification. Listen for the notification everywhere you want to react to the timeout. Doing it this way means that you don't have to add code all through your app to reset the timer on every interaction.

Having said that, I agree with Shaggy Frog, this isn't typical behaviour for an iOS application, so it's not usually a good idea from a HCI perspective.



回答2:

If you're asking "How do I define activity", you could always reset a timer after a touch event is received, whose callback triggers the "user is inactive event".

I can't speak much for your overall design choice here, as I don't think most iOS users expect their apps to behave in this manner. Think of your users and proceed with caution.



回答3:

You can also check for applicationwillresignactive callback for this.