监听Activity进入后台(最小化),并根据时间判断是否超时,此解决办法可用于超时重登陆
2024-10-12 17:02:50
通过重写一个继承自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); } }
最新文章
- Dubbo系列(3)_官方Demo说明
- ModSecurity 白名单设置
- 使用.net的Cache框架快速实现Cache操作
- iOS设计模式之中介者模式
- location 、history
- asp.net 多个域名重定向,在web.Config中配置
- sgu 194 Reactor Cooling(有容量上下界的无源无汇可行流)
- [工具]web开发时自动刷新网页:liveReload
- SELECT--UNION,UNION ALL,MINUS, INTERSECT,EXISTS
- ArcEngine 10.2 汉化问题
- 学习Android路上的一些感慨和总结,慢慢来,比较快!
- mysql知识点拾遗梳理
- ThinkingInJava 学习 之 0000006 复用类
- 2.2 Apache Axis2 快速学习手册之 AXIOM 构建 Web Service
- 使用dev-tool定位页面性能瓶颈
- hdu 4536 dfs
- 【解决】缺少libstdc++.so.6库的原因及解决的方法
- this.AcceptButton = button1的用法:
- POJ - 2226 Muddy Fields (最小顶点覆盖)
- 1003 Emergency (25 分)(求最短路径)