• 监听Activity进入后台(最小化),并根据时间判断是否超时,此解决办法可用于超时重登陆


    通过重写一个继承自Activity的基类中的onUserLeaveHint()方法,当用户按Home键等操作使程序进入后台时即开始计时,当用户使程序恢复为前台显示时执行onResume()方法,在其中判断是否超时.

    public class BaseActivity extends Activity {
        private static final String TAG = "z";
        private static SharedPreferences pref;
        private static boolean isLeave = false;
    
        public OfficeBaseActivity() {
            super();
            // TODO Auto-generated constructor stub
        }
        
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            pref = getSharedPreferences("timeoutcheck", Context.MODE_PRIVATE);
        }
    
    
        @Override
        protected void onUserLeaveHint() { //当用户按Home键等操作使程序进入后台时即开始计时
            // TODO Auto-generated method stub
            super.onUserLeaveHint();
            if(!isLeave){
                isLeave=true;
                saveStartTime();
            }
        }
        
        @Override
        protected void onResume() { //当用户使程序恢复为前台显示时执行onResume()方法,在其中判断是否超时.
            // TODO Auto-generated method stub
            super.onResume();
            if(isLeave){
                isLeave=false;
                timeOutCheck();
            }
        }
    
        public void timeOutCheck() {
            long endtime = System.currentTimeMillis();
            Log.i(TAG, "endtime  == " + endtime);
            Log.i(TAG, "starttime  == " + getStartTime());
            Log.i(TAG, "endtime - getStartTime == " + (endtime - getStartTime()));
            if (endtime - getStartTime()>= 30 * 1000){
                Toast.makeText(this, "超时了", Toast.LENGTH_SHORT).show();
            }
        }
    
        public void saveStartTime() {
            pref.edit().putLong("starttime", System.currentTimeMillis()).commit();
        }
    
        public long getStartTime() {
            return pref.getLong("starttime", 0);
    
        }
    
    }
    


  • 相关阅读:
    将网址设为首页和添加到收藏夹(JS脚本)
    窗体居中一句话
    链接跳转JS
    工厂学习心得(三)Asp.net
    工厂模型学习心得(一)(ASP.Net)
    ubuntu终端快捷键
    Win7锐捷:无法找到网卡或系统未完成网卡初始化操作.请稍后再尝试认证
    Xming的使用
    在Windows上建立ssh服务器
    Windows XP循环启动
  • 原文地址:https://www.cnblogs.com/james1207/p/3262945.html
Copyright © 2020-2023  润新知