在Android中创建和处理应用程序超时

EGH*_*HDK 3 java android

我想知道什么是处理应用程序超时的最佳方法,例如PayPal.我希望用户在1到5分钟或15分钟的超时时间内进行选择,因此当他们打开应用程序时,他们必须再次登录.

我的onResume方法:

@Override
    public void onResume() {

    } 
Run Code Online (Sandbox Code Playgroud)

它什么都没有.但它崩溃了.

作为注释:我的应用程序有两个活动.第一个活动是登录屏幕.第二个活动是主屏幕.onResume方法位于第二个活动中.

azg*_*fer 9

我在我的一个应用中做到了这一点:

您需要一个基本活动,您的所有活动都将从中扩展.在此基本活动中,添加一个跟踪"上次用户活动"时间戳的变量.就我而言,用户活动只是意味着他们触摸了屏幕.因此,重写dispatchTouchEvent(MotionEvent ev)方法,并将"最后一个用户活动"设置为当前时间戳.

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    lastActivity = new Date().getTime();
    return super.dispatchTouchEvent(ev);
}
Run Code Online (Sandbox Code Playgroud)

然后在此基本活动的onResume()方法中,只需将当前时间戳与"上次用户活动"时间戳进行比较.如果超过1,5或15分钟(可由用户配置),则启动另一个活动以要求用户登录.

@Override
public void onResume() {
    long now = new Date().getTime();
    if (now - lastActivity > xxxx) {
       // startActivity and force logon
    }
} 
Run Code Online (Sandbox Code Playgroud)