尝试使用System.getTimeInMillis进行用户签入

时间:2014-04-11 19:34:05

标签: android

我的问题可能比某些人更简单...我正在开发一个应用程序ID,而不是具体的,并且由于非保密协议,我不允许显示我的代码...但是我来到了站着不动。我需要做的是检查应用程序是否在过去24小时内使用过,没有检查服务器端。所以这是一个问题:

是否可以使用系统时钟进行此类过程,并确定用户是否已签入?我有几次尝试,但即使我尝试毫秒,时间总是在24小时之外。

我再次为无法分享代码而道歉,并希望有一个简单的解决方案,我错过了,即使它是黑客的!提前谢谢!

编辑:要清楚我正在使用System.currentTimeMillis()将其保存到存储的首选项,然后根据我存储的最后一个值检查它给我一个时间差。我只是想知道是否有一些API错过了这个...或者可能是一种更简单的方法。

1 个答案:

答案 0 :(得分:1)

在您的每个活动onResume()onPause()中,具体取决于您对上次活动的定义,请添加以下内容:

SharedPreferences.Editor editor = getSharedPreferences("some_name", Context.MODE_PRIVATE).edit();
editor.putLong("lastActive", System.currentTimeMillis());
editor.commit();

然后在主活动的onCreate()或onResume()中,检查此值以查看已经过了多长时间。

SharedPreferences saved = getSharedPreferences("some_name", Context.MODE_PRIVATE);
long lastActive = saved.getLong("lastActive", 0);

long elapsed = System.currentTimeMillis() - lastActive;