监听Activity进入后台(最小化),并根据时间判断是否超时,此解决办法可用于超时重登陆
2015-03-31 09:57
260 查看
转自:http://blog.csdn.net/cnzhuzi/article/details/10002931
通过重写一个继承自Activity的基类中的onUserLeaveHint()方法,当用户按Home键等操作使程序进入后台时即开始计时,当用户使程序恢复为前台显示时执行onResume()方法,在其中判断是否超时.
通过重写一个继承自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); } }
相关文章推荐
- 监听Activity进入后台(最小化),并根据时间判断是否超时,此解决办法可用于超时重登陆
- 监听Activity进入后台(最小化),并根据时间判断是否超时,此解决办法可用于超时重登陆
- 在ASP.NET中怎么用SESSION判断用户是否登录? 以及Session登陆后丢失的解决办法
- app进入后台之后接收到通知,点进去进入新的页面,再次进入后台,再点击通知进入页面(,两次通过通知进入的页面,创建了两次,会多一个页面,)解决办法监听
- 自动化测试Robotium获取当前页面的activity,用于判断是否进入这个页面
- 用ajax的同步请求解决登陆注册需要根据服务器返回数据判断是否能提交的问题
- 今天写出的一个基类。用于根据cookies来判断用户是否已经登陆
- Web系统实时监控后台是否有新消息的解决办法
- GridView RadioButton 解决办法(二) -- 判断是否有选择
- ASP.Net超时时间已到解决办法
- 超时时间已到解决办法
- ViewPager实现引导界面以及进入下一个activity解决办法
- ASP.Net超时时间解决办法
- JS判断用户是否有权限进入当前页面,没有直接关闭(解决IE7以上版本提示问题)
- 自己的判断是否在时间内的函数,用于禁用input、radio等
- 解决办法之“超时时间已到。超时时间已到,但是尚未从池中获取连接..."
- c++ 根据文件的最后修改时间判断是否需要覆盖更新文件
- sql2005无法创建索引,超时时间已到的原因,解决办法
- dede后台登陆提示 验证码不正确 解决办法
- dede登陆后台直接转跳转首页而不是管理中心解决办法