• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

监听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);

    }

}


 

 

posted @ 2013-08-16 18:52  Class Xman  阅读(260)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3