zoukankan      html  css  js  c++  java
  • Andriod一段时间未操作页面,系统自动登出

    功能描述:

    APP在公共的设备上运行,出于安全考虑,当登录的用户在超过一定时间内没有做任何操作,

    则系统自动登出,用户如需重新操作APP,则需要重新登录 。

    第一步:创建一个BaseActivity

    /**
     * 创建时间: 2019-02-26
     * 创建人:陈松
     * 说明:
     */
    public class BaseActivity extends FinalActivity {
        public  Context context;                        //运行上下文
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            startAD();
        }
    
        private Handler handler = new Handler();
        private long time = 1000 * 60 * 5;          //设置限时时间:5分钟
    
        @Override
        public boolean dispatchTouchEvent(MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    handler.removeCallbacks(runnable);
                    break;
                case MotionEvent.ACTION_UP:
                    startAD();
                    break;
            }
            return super.dispatchTouchEvent(event);
        }
    
        private Runnable runnable = new Runnable() {
            @Override
            public void run() {         
                   //超时要执行的内容(自定义),此片弹窗提示,并跳转页面
                   new ShowDialog(context, R.style.dialog, "当前登录已失效,请重新登录!", new ShowDialog.OnCloseListener() {
                      @Override
                      public void onClick(Dialog dialog, boolean confirm) {
                        Intent intent=new Intent(context, LoginActivity.class);
                        startActivity(intent);
                        finish();
                      }
                  }).setTitle("温馨提示").show();
            }
        };
    
        public void startAD() {
            handler.removeCallbacks(runnable);
            handler.postDelayed(runnable, time);
        }
    
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
        }
        //endregion
    }

    第二步:在主操作的Activity中extends BaseActivity

    public class MenuActivity extends BaseActivity {
    
    }

    第三步:在MenuActivity的onCreate方法中,给BaseActivity 的context属性赋值

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_menu_main);
    
        context=MenuActivity.this;
    }

    完毕收工~~~~~

  • 相关阅读:
    关于js的对象原型继承(一)
    js相关小技巧
    一、WCF学习之旅-创建第一个服务
    .net WebService方法之重载、支持Session、支持request请求和response格式的浅析
    关于反射的BindingFlag浅析
    oracle之TRUNC函数
    start with...connect by子句的浅用
    一个在windows电脑上控制比较全的文件夹的设置方式
    javascript的replace之正则表达式的浅析
    抓取错误之onerror
  • 原文地址:https://www.cnblogs.com/xmyjcs/p/10438968.html
Copyright © 2011-2022 走看看