APP操作超时,重新登录

来源:互联网 发布:latex windows 安装 编辑:程序博客网 时间:2024/04/29 09:53

这个功能描述的是长时间不操作后,重新登录。实现这个功能需要两步操作:
1.获取activity的Ui触摸操作
2.定义超时时间(此处用handle.postdely能不开线程就不开线程)
3.跳转到登陆页面,相当于注销功能
1.UI触摸操作
事件onTouchEvent和dispatchTouchEvent都能截获对activity地触摸事件,因为我们不对具体事件做处理,选择其中一个就可以

    //这里选择onTouchEvent 接收触摸操作   @Override    public boolean onTouchEvent(MotionEvent event) {        MyLog.i("全局触摸事件", "onTouchEvent");        return super.onTouchEvent(event);    }

2.定义超时逻辑
因为操作屏幕地时候你最后一个动作永远是抬起来。所以定义 手指抬起来的时候设置定时器,按下去地时候取消定时器。

 private long time=1000*3;    @Override    public boolean onTouchEvent(MotionEvent event) {        switch (event.getAction()) {            case MotionEvent.ACTION_DOWN:                postHandle.removeCallbacks(runnable);                break;            case MotionEvent.ACTION_UP:                startAD();                break;        }        return super.onTouchEvent(event);    }    public void startAD() {        postHandle.removeCallbacks(runnable);        postHandle.postDelayed(runnable, time);    }

3.注销

 private Runnable runnable = new Runnable() {        @Override        public void run() {            Log.i("执行", "线程");            if (!getCurActivity()) {                Intent logoutIntent = new Intent(BaseActivity.this, MainActivity.class);                logoutIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);                startActivity(logoutIntent);            }        }    };
0 0
原创粉丝点击