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);
    
        }
    
    }
    


  • 相关阅读:
    Ogre中的旋转变换问题 Vector3 , Quaternion,matrix
    OIS几个重要的类的使用
    Ogre中的向量Vector3的成员方法
    用Ogre画三角形
    pitch yaw roll 的区别
    OGRE中用到的设计模式
    OGRE体系结构(类的继承关系)
    OGRE教程SceneNode, Entity, SceneManager and Get start 的讲解
    Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)
    Asp.Net Mvc2 OA工作流设计思路
  • 原文地址:https://www.cnblogs.com/james1207/p/3262945.html
Copyright © 2011-2022 走看看