我有一个应用程序,你必须像用户一样用你的密码登录。
这个应用程序需要是安全的,所以当他在一段确定的时间内(例如,5分钟)没有看到屏幕时,它需要注销用户。
问题在于,一旦用户登录,他就可以进行许多活动,而不仅仅是一次,我想知道Android中是否有办法知道用户是否可以在几次后退出分钟。
我正在考虑使用onInterceptTouchEvent(MotionEvent ev)方法,但问题在于,我是否必须在每个活动中使用此方法? ¿还有另一种在Android中管理它的更简单方法吗?
非常感谢!
答案 0 :(得分:1)
1。实现此目的的一种方法是在用户登录应用程序时获取当前时间(使用System.currentTimeMillis()
)。我们将其保存在变量t1
。
2. 启动一项服务,该服务将监控/检查/执行以下内容:
2a。只要用户触摸您的任何活动,就会将t1
的值设置为当前时间。
2b。持续获取当前时间(t2
)并计算t1
和t2
之间的时间间隔(即t2 - t1
) 。如果此延时等于或大于5分钟,您可以拨打logOut()
功能。
是的,您必须从每项活动通知后台服务用户在场。虽然 Carnal 提供的解决方案可以大大减少您实现这一目标的努力。
答案 1 :(得分:1)
您可以像这样创建一个Activity
,而不是在每个Activity
上实现此功能:
public class BaseActivity extends Activity
并在onInterceptTouchEvent
中实施BaseActivity
。
然后,从所有其他Activities
开始,您必须扩展BaseActivity
<强>更新强>
如果您想在整个屏幕中收听事件,则必须使用onTouch
。这要求在Activity
的每个xml文件中,您必须为xml的根视图提供id
(Linearlayout
,Relativelayout
,{{1} } 管他呢)。因此,为了让您的Framelayout
从其他BaseActivity
获取输入,您必须将根视图传递给它,如下所示:
Activities