I was wondering what would be the best way to handle an application timeout, such as PayPal. I want the user to select between 1, 5, or 15 minute timeout period, so when they op
I did this in one of my apps:
You need a base Activity for which all of your activities will extend from. In this base activity, add a variable that keeps track of the 'last user activity' timestamp. In my case, user activity simply means they touch the screen. So override the dispatchTouchEvent(MotionEvent ev) method, and set the 'last user activity' to current timestamp.
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
lastActivity = new Date().getTime();
return super.dispatchTouchEvent(ev);
}
Then in onResume() method of this base activity, just compare current timestamp with 'last user activity' timestamp. If it more than either 1, 5 or 15 minutes (configurable by user), then launch another activity to ask the user to login.
@Override
public void onResume() {
long now = new Date().getTime();
if (now - lastActivity > xxxx) {
// startActivity and force logon
}
}