Android Sharedpreferences Timelimit

时间:2014-02-25 10:47:52

标签: android timeout sharedpreferences

在我的Android应用程序中,我使用共享首选项来记住一些输入,这样当应用程序启动时,用户不需要每次都输入输入..现在我需要注销共享首选项,如果使用应用程序的时间是超过24小时..就像在gmail中一样,我们的登录详细信息将被记住24小时或之后,之后它会自动注销...我需要做些什么改变...我在下面给出我的代码..

用于记忆的SharedPreference

if (spl1.equals("English")  ) 
            {SharedPreferences setting = this.getSharedPreferences(PREFS_NAME,0);
                    SharedPreferences.Editor editors = setting.edit();
                    editors.putString("lo", "lo");

                    editors.putString("fn", firstName);
                    editors.putString("mn",middleName);
                    editors.putString("ln",lastName);

                    editors.putString("dt",dates);
                    editors.putString("mt",months);
                    editors.putString("yrs",years);
                    //Passing exp no, heart no, lifepath number
                    editors.putLong("name11", sum11);
                    editors.putLong("name12", sum12);
                    editors.putLong("name10", sum10);

                    editors.commit();



                    Intent t = new Intent(FullExplanationEntry.this, TabLayoutActivityh.class);
}

注销

*

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
            if (item.getItemId() == R.id.button04) {
                    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
                    SharedPreferences.Editor editor = settings.edit();
                    editor.remove("lo");
                    editor.commit();
                    finish();
            }
            return super.onOptionsItemSelected(item);

}

2 个答案:

答案 0 :(得分:5)

您可以使用以下方法将最后登录时间存储在sharedprefence中: -

editors.putLong("lastlogin", new Date().getTime());

当用户下次启动应用时,获取lastlogin时间并检查其是否超过24小时,如果是,则使用以下方法清除数据: -

Deleting shared preferences

答案 1 :(得分:3)

您也可以将系统时间添加到共享首选项中,然后检查相同内容并在用户启动应用程序或应用程序到达前台时比较共享首选项中的日期。

如果超出限额(24小时),请清除共享偏好