zoukankan      html  css  js  c++  java
  • 监听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);
    
        }
    
    }
    


  • 相关阅读:
    预定义规则 取范围数据
    oracle table 数组的赋值方法
    java 缓存读写
    webpack
    vscode setting
    webpack babel
    共享你的vscode配置
    github API很丰富
    tips
    todo
  • 原文地址:https://www.cnblogs.com/james1207/p/3262945.html
Copyright © 2011-2022 走看看