我的问题可能比某些人更简单...我正在开发一个应用程序ID,而不是具体的,并且由于非保密协议,我不允许显示我的代码...但是我来到了站着不动。我需要做的是检查应用程序是否在过去24小时内使用过,没有检查服务器端。所以这是一个问题:
是否可以使用系统时钟进行此类过程,并确定用户是否已签入?我有几次尝试,但即使我尝试毫秒,时间总是在24小时之外。
我再次为无法分享代码而道歉,并希望有一个简单的解决方案,我错过了,即使它是黑客的!提前谢谢!
编辑:要清楚我正在使用System.currentTimeMillis()将其保存到存储的首选项,然后根据我存储的最后一个值检查它给我一个时间差。我只是想知道是否有一些API错过了这个...或者可能是一种更简单的方法。
答案 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;